
【已解决】ValueError: Cannot feed value of shape (1, 6) for Tensor h:0, which has shape (None, 7)涉及其他报错问题
解决了ValueError: Cannot feed value of shape (1, 6) for Tensor h:0, which has shape (None, 7)数据维度不一致的问题,同时把遇到的其他报错问题一并列举。问题解决方法的记录,希望有所帮助!
1 问题分析
通过报错信息,我们可以分析出feed_dict的值与定义的输入数据张量格式不匹配,feed_dict的维度比如是3维的,那么shape是(32,32,3),而如果输入的数据维度是4维的,shape是(None,32,32,3)。所以,导致出现了维度不匹配的问题。
在我的程序中,本应输入一个7维的数据,但是看了下输入的数据只有6维,通过修改数据的格式解决了此问题。
note: 出现这种错误是唯独不匹配导致的错误,这个错误的根源要知道。
2 解决方法
2.1 通过修改输入的数据使数据的维度保持一致。
2.2 修改程序使其匹配
因为我的程序运行过程中出的错不需要改程序,所以这里借鉴一下别人出现的错误,方便大家理解。主要原因是维度不匹配的问题。
image = tf.reshape(image_data, [1, 32, 32, 3])
#输出要经过np.sum函数,才能得到类别编号
#file_label = np.sum(file_label)
另一位出现错误的解决方法
image形状为(64,64,3)。
您的输入占位符_x的形状为(?,64,64,3).
问题是您正在为占位符提供不同形状的值。
您必须为它提供(1,64,64,3)= 一批 1 张图像的值。
只需将您的价值重塑image为大小为 1 的批次。
image = array(img).reshape(1,64,64,3)
3 其他报错
除此之外,在跑程序的过程中,出现了其他的错误,都对应找到了解决方法,先走都放下面供大家参考。
3.1 报错:Ignore above cudart dlerror if you do not have a GPU set up on your machine
解决方法:去pycharm–>setting中下载TensorFlow不同的版本,因为TensorFlow分为不同的版本,有CPU版本的还有GPU版本的,看自己需要下载相应的版本。
其他解决办法1:
如果电脑没有GPU则忽略此错误提示并退回到CPU版本,重新安装TensorFlow的CPU版本
其他解决办法2:
针对tensorflow-gpu版本使用时报错,各种dll文件找不到的问题进行了总结。
其他解决方法3:
其他提到的是,Keras和TensorFlow-CPU或者TensorFlow-GPU的版本要一致,因为我下载的版本是一致的,都是2.8.0,所以不知道有没有可能是这个原因,可以试一下。
3.2 报错:AttributeError: module ‘tensorflow’ has no attribute ‘reset_default_graph’
在memory.py文件里面修改内容:
把tf.reset_default_graph()
改为:
tf.compat.v1.reset_default_graph()
如图所示:
其他解决方法1
import tensorflow as tf
tf.compat.v1.reset_default_graph()
这个解决方法是在运行的程序中加入import的方法,解决此问题,我是在memory文件里面修改的文件。
3.3 报错:AttributeError: module ‘tensorflow’ has no attribute ‘placeholder’
在源代码中,placeholder
前面是没有.compat.v1
的,当我把所有memory文件中的无法识别的前面都加上.compat.v1
便解决了。
其他解决方法1:
将语句 X=tf.placeholder(“float”) Y=tf.placeholder(“float”)
改为:X=tf.compat.v1.placeholder(“float”)
Y=tf.compat.v1.placeholder(“float”)
编译通过
作品将相应的语法改成加上了.compat.v1
的方法,举一反三,我也是按照相同的思路改的。
3.4 报错:ValueError: Cannot feed value of shape (1, 6) for Tensor h:0, which has shape (None, 7)
这个问题就是刚开始提到的问题,此问题是数据和TensorFlow模型的维度不一样导致的。
更多推荐
所有评论(0)