Tensorflow 错误“形状 Tensorshape() 必须具有等级 1”

2024-02-25

import tensorflow as tf
import numpy as np
import os
from PIL import Image
cur_dir = os.getcwd()

def modify_image(image):
  #resized = tf.image.resize_images(image, 180, 180, 3)
   image.set_shape([32,32,3])
   flipped_images = tf.image.flip_up_down(image)
   return flipped_images

def read_image(filename_queue):
  reader = tf.WholeFileReader()
  key,value = reader.read(filename_queue)
  image = tf.image.decode_jpeg(value)
  return key,image

def inputs():
 filenames = ['standard_1.jpg', 'standard_2.jpg' ]
 filename_queue = tf.train.string_input_producer(filenames)
 filename,read_input = read_image(filename_queue)
 reshaped_image = modify_image(read_input)
 reshaped_image = tf.cast(reshaped_image, tf.float32)
 label=tf.constant([1])
 return reshaped_image,label

def weight_variable(shape):
 initial = tf.truncated_normal(shape, stddev=0.1)
 return tf.Variable(initial)

def bias_variable(shape):
 initial = tf.constant(0.1, shape=shape)
 return tf.Variable(initial)

def conv2d(x, W):
 return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):
 return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                    strides=[1, 2, 2, 1], padding='SAME')

x = tf.placeholder(tf.float32, shape=[None,32,32,3])
y_ = tf.placeholder(tf.float32, shape=[None, 1])
image,label=inputs()
image=tf.reshape(image,[-1,32,32,3])
label=tf.reshape(label,[-1,1])
image_batch=tf.train.batch([image],batch_size=2)
label_batch=tf.train.batch([label],batch_size=2)

W_conv1 = weight_variable([5, 5, 3, 32])
b_conv1 = bias_variable([32])

image_4d=x_image = tf.reshape(image, [-1,32,32,3])

h_conv1 = tf.nn.relu(conv2d(image_4d, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

W_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

W_fc1 = weight_variable([8 * 8 * 64, 1024])
b_fc1 = bias_variable([1024])
h_pool2_flat = tf.reshape(h_pool2, [-1, 8*8*64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)
keep_prob = tf.placeholder(tf.float32)
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

W_fc2 = weight_variable([1024, 2])
b_fc2 = bias_variable([2])

y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)
cross_entropy= -tf.reduce_sum(tf.cast(image_batch[1],tf.float32)*tf.log(y_conv))
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

for i in range(20000):
 sess.run(train_step,feed_dict={x:image_batch[0:1],y_:label_batch[0:1]})

我正在尝试在我自己的尺寸为 [32x32x3] 图像的图像上运行张量流卷积模型。在训练期间,图像被正确读取并分配给占位符。问题是在运行 train_step 操作时出现的。当我执行该图时,出现以下错误。

TensorShape([Dimension(2), Dimension(1), Dimension(32), Dimension(32), Dimension(3)]) must have rank 1

但当我看到这个例子时here https://github.com/nlintz/TensorFlow-Tutorials/blob/master/5_convolutional_net.py,图像仅采用 [batch_size,height,width,depth] 张量的形式。这个例子运行得很好。 我错过了什么吗?


我认为错误来自这一行:

cross_entropy= -tf.reduce_sum(tf.cast(image_batch[1],tf.float32)*tf.log(y_conv))

image_batch是一个 5 维张量,形状为[2, 1, 32, 32, 3],其中 2 是batch_size论证tf.train.batch(),并且 1 是由之前添加的image = tf.reshape(image, [-1, 32, 32, 3]). (N.B.这种重塑是不必要的,因为tf.train.batch()已经添加了批量维度,你最终不得不undo稍后构建时重塑的效果image_4d).

在 TensorFlow 中,切片操作(即image_batch[1])比 NumPy 中的灵活性稍差。切片中指定的维度数必须等于张量的秩:即您必须指定所有五个维度才能使其工作。你可以指定image_batch[1, :, :, :, :]得到 4 维切片image_batch.

但是,我注意到您的程序中还有一些其他问题:

  1. The cross_entropy计算似乎很奇怪。通常,这使用预测标签并将其与已知标签进行比较label,与图像数据相反。

  2. 训练步骤中的 feed 似乎没有效果,因为占位符x and y_在您的程序中未使用。此外,您似乎正在喂养tf.Tensor(事实上​​,非法切片image_batch),因此当您执行该语句时将会失败。如果您打算使用馈送,则应该馈入保存输入数据的 NumPy 数组。

  3. 如果您不使用喂养方式,即使用tf.WholeFileReader如您的程序所示 - 您将需要调用tf.train.start_queue_runners()开始。否则你的程序将挂起,等待输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow 错误“形状 Tensorshape() 必须具有等级 1” 的相关文章

  • 为神经网络打乱两个 numpy 数组

    我有两个 numpy 数组用于输入数据 X 和输出数据 y X np array 2 3 sample 1 x 16 4 dtype float sample 2 x y np array 1 0 sample 1 y 0 1 dtype
  • 分配列表的多个值

    我很想知道是否有一种 Pythonic 方式将列表中的值分配给元素 为了更清楚 我要求这样的事情 myList 3 5 7 2 a b c d something myList So that a 3 b 5 c 7 d 2 我正在寻找比手
  • minAreaRect OpenCV 返回的裁剪矩形 [Python]

    minAreaRectOpenCV 中返回一个旋转的矩形 如何裁剪矩形内图像的这部分 boxPoints返回旋转矩形的角点的坐标 以便可以通过循环框内的点来访问像素 但是在 Python 中是否有更快的裁剪方法 EDIT See code在
  • 如何使用我自己的自定义表单覆盖 django-rest-auth 中的表单?

    我正在使用 django rest auth 并尝试通过覆盖表单的方法之一来修复密码重置视图中的错误 尽管我已经使用不同的 django rest auth 表单成功完成了类似的操作 但我无法让它在这个表单上工作 无论我做什么 都会使用旧的
  • 绝对导入不起作用,但相对导入起作用

    这是我的应用程序结构 foodo setup py foodo init py foodo py models py foodo foodo foodo py从导入类models py module from foodo models im
  • 如何使用 python、openCV 计算图像中的行数

    我想数纸张 所以我正在考虑使用线条检测 我尝试过一些方法 例如Canny HoughLines and FLD 但我只得到处理过的照片 我不知道如何计算 有一些小线段就是我们想要的线 我用过len lines or len contours
  • 计算熊猫数据帧几个月的总和

    我有一个 pandas 数据框 如下所示 ID Year R1 R1 f KAR1 20201001 1 5 KAR1 20201101 2 6 KAR1 20201201 3 7 KAR1 20210101 4 8 KAR1 202102
  • 如何在动态执行的代码字符串中使用inspect.getsource?

    如果我在文件中有这段代码 import inspect def sample p1 print p1 return 1 print inspect getsource sample 当我运行脚本时 它按预期工作 在最后一行 源代码sampl
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • Django Web 应用程序中的 SMTP 问题

    我被要求向使用 Django Python 框架实现的现有程序添加一个功能 此功能将允许用户单击一个按钮 该按钮将显示一个小对话框 表单以输入值 我确实编写了一些代码 显示电子邮件已发送的消息 但实际上 它没有发送 My code from
  • 如何仅注释堆积条形图的一个类别

    我有一个数据框示例 如下所示 data Date 2021 07 18 2021 07 19 2021 07 20 2021 07 21 2021 07 22 2021 07 23 Invalid NaN 1 1 NaN NaN NaN N
  • 如何将 Pyspark Dataframe 标题设置到另一行?

    我有一个如下所示的数据框 col1 col2 col3 id name val 1 a01 X 2 a02 Y 我需要从中创建一个新的数据框 使用 row 1 作为新的列标题并忽略或删除 col1 col2 等行 新表应如下所示 id na
  • 同一台机器上有多个Python版本?

    Python 网站上是否有关于如何在 Linux 上的同一台计算机上安装和运行多个版本的 Python 的官方文档 我可以找到无数的博客文章和答案 但我想知道是否有 标准 官方方法可以做到这一点 或者这一切都取决于操作系统 我认为它是完全独
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 有没有办法拉伸整个显示图像以适应给定的分辨率?

    我最近一直在使用pygame制作游戏 遇到了一个小问题 基本上 我希望能够将屏幕上的整个图像 我已经传输到它的所有内容 拉伸到用户将窗口大小调整到的分辨率 我在 pygame 和堆栈溢出的文档中搜索了很多 但我似乎找不到答案 这可能吗 我的
  • 在 python 中使用高精度时间戳

    嘿 我正在使用 python 处理日期时间 我想知道解析这个时间戳的最佳方法是什么 时间戳是ISO标准 这里是一个例子 2010 06 19T08 17 14 078685237Z 现在到目前为止我已经使用过 time datetime d
  • PYTHON:从 txt 文件中删除 POS 标签

    我有以下 txt 文件 其中包含 POS 词性 http en wikipedia org wiki Part of speech tagging 每个单词的标签 不用 jj到 说 vb 我 ppss是 bedz愤怒 jj在 在 dt无与伦
  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过

随机推荐

  • 如何在 django 中安排将来某个时间发送电子邮件?

    我想安排在执行特定操作时向用户发送电子邮件 但是 如果用户采取其他操作 我想取消该电子邮件并且不发送它 我该如何在 django 或 python 中做到这一点 豆茎 如果可以安装的话豆茎 http kr github com beanst
  • C 的 GCD 函数

    Q 1 问题5 可整除 我尝试了蛮力法 但是需要时间 所以我参考了几个网站 找到了这段代码 include
  • ChartJS 甜甜圈图表渐变填充

    因此 我尝试为 ChartJS 圆环图进行渐变填充 但这仅适用于水平方向 而不适用于圆形 这是我正在使用的代码 var ctx document getElementById chart area getContext 2d var gra
  • 仅显示 shell_exec('df') 中磁盘使用数据的特定列

    我正在尝试编写一个 PHP 脚本来执行用于报告的 shell 函数 我从磁盘使用报告开始 我想要以下格式 drive path total size free space 没有其他的 我的脚本是 output shell exec df h
  • 我可以在 TCPDF 中使用“旧式”(非衬里)数字吗?

    Unicode 不区分衬里数字 与大写字母具有相同的比例 在表格中很有用 但在运行文本中很突出 和非衬里数字 它们看起来更像小写字母 具有上升部分和下降部分 因为它认为它们是彼此的变体 不过 许多字体都具有两组数字 并提供了一种在它们之间进
  • Mozilla firefox 无法使用 window.onbeforeunload

    我在用着window onbeforeunload在窗口关闭时向用户显示消息 该功能在 Chrome 和 IE 上运行良好 但在 Firefox 上不起作用 我使用的是 Firefox 版本26 0我已经尝试了很多 但没有任何意义 有人说这
  • 如何通过解耦的后端和前端进行社交身份验证(Passport / Express / React)

    我正在尝试使用 PassportJS Express 后端和 React JS 前端来进行社交身份验证 但是 我不确定如何去做 我做了一些阅读并实现了社交身份验证 当使用 Google Auth 登录时 它会返回由 Express 应用程序
  • 是否建议在 bash 脚本中捕获 SIGPIPE?

    我在使用系统调用命令从 C 执行 bash 脚本时遇到问题 该脚本捕获了一个SIGPIPE发出信号并退出并返回代码141 这个问题只在我的代码的最后一个版本中开始出现 我的问题如下 为什么这个 SIGPIPE 现在出现而以前没有出现 忽略
  • 带脚本的文本编辑器...适用于 Linux

    一段时间以来 我一直在我的 Windows 机器上使用 UltraEdit 事实证明 使用熟悉的语言 JavaScript 编写脚本的能力非常有用 唯一的问题是我无法在工作时在我的 Linux 机器上使用它 是否有在 Linux 上运行并具
  • 如何“解码”UTF-8 字符?

    假设我想编写一个函数来比较两个 Unicode 字符 我该怎么做呢 我读了一些文章 比如this http en wikipedia org wiki UTF 8 但还是没明白 让我们来 作为输入 已经在范围内了0x0800 and 0xF
  • WIA服务2、在windows xp/7上下载并安装

    我编写了一个从扫描仪扫描图像的应用程序 这在我的开发机器 win7 Ultimate sp1 64位 上运行良好 我尝试在 Windows XP 计算机 或 Windows Server 2008 标准 上运行该应用程序 但失败并出现此错误
  • Android IllegalArgumentException:如果应用程序在后台运行一段时间,则状态类错误

    如果我设置应用程序背景 我认为这是由于内存不足造成的 日志如下 java lang RuntimeException Unable to start activity ComponentInfo com qingdaonews bus co
  • 标头包含深度限制[重复]

    这个问题在这里已经有答案了 我想知道 包含头文件时 包含文件的深度可以无限增加吗 你能在编译时指定一个限制吗 Example main c include A h const int xyz CONST VALUE A h include
  • MapView 没有从 ViewPager 中删除?

    在我的应用程序中 我试图在 ViewPager 内实现地图视图 我的应用程序中有 4 个不同的页面 MapView在第四页 我确实成功加载了地图 但是当我滑回第一页时 必须使用 destroyItem 方法销毁第四个视图 如果我刷到第四页
  • 如何在云监控/stackdriver中按状态显示总dataproc作业?

    Dataproc 作业中应该有成功 失败 待处理状态 当然我可以在 Cloud Console 上 Dataproc 下的作业部分中看到该状态 但是 如何在云监控 stackdriver 中可视化所有这些状态 已经尝试过记分卡图表并使用指标
  • 是否可以从包含操作系统的 .img 文件创建 docker 映像

    是否可以转换 img包含操作系统 Arch Linux 的文件到 Docker 镜像中 更准确地说我想要码头化RuneAudio Raspberry Pi 图像 从完整的操作系统映像生成 Docker 映像通常是一个次优的过程 操作系统映像
  • HTML 注释行为

    所以 我在 Magento WYSIWYG 编辑器 所有东西 中闲逛时注意到呈现为在生成的 HTML 中 似乎也将任何字符串括在呈现正常的评论 我只在 Chrome 中测试过这一点 但这种行为对我来说似乎有点奇怪 我看过W3C 规范评论 h
  • 文本词云绘制错误

    我有以下用于绘制词云的代码 并且收到后续错误 wordcloud dm word dm freq scale c 8 2 min freq 2 max words Inf random order FALSE rot per 15 colo
  • 在 Windows 上为 python 2.7 安装 gstreamer 1.0。

    我一直在尝试在 Windows 上安装 gstreamer 1 0 以用作 python 2 7 模块 我从这里安装了sdkhttp docs gstreamer com display GstSDK Installing on Windo
  • Tensorflow 错误“形状 Tensorshape() 必须具有等级 1”

    import tensorflow as tf import numpy as np import os from PIL import Image cur dir os getcwd def modify image image resi