【已解决】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模型的维度不一样导致的。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值