Tensorflow指定要求两个张量的形状匹配。左侧形状=[20]右侧形状=[48]

2024-05-15 16:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个紧张的人。我已经从deeppose的开源实现中训练了一个TensorFlow模型,现在必须对一组新的图像运行该模型。

模型是在大小为100 * 100的图像上训练的,因此我将新的图像集调整为相同大小。我有149个新的映像来运行模型。当我运行模型时,我得到以下错误。

InvalidArgumentError (see above for traceback): Assign requires shapes
of both tensors to match. lhs shape= [20] rhs shape= [48]

排队

saver = tf.train.Saver(tf.all_variables())

我怀疑训练的模型大小和测试图像大小不匹配。我不清楚如何解决这个问题。我从tf.all_variables()调用中打印出变量列表。在这儿

Tensor("Placeholder:0", shape=(128, 100, 100, 3), dtype=float32)
(11, 11, 3, 20)
conv1/weights:0
(20,)
conv1/biases:0
(5, 5, 20, 35)
conv2/weights:0
(35,)
conv2/biases:0
(3, 3, 35, 50)
conv4/weights:0
(50,)
conv4/biases:0
(3, 3, 50, 75)
conv5/weights:0
(75,)
conv5/biases:0
(300, 1024)
local1/weights:0
(1024,)
local1/biases:0
(1024, 1024)
local2/weights:0
(1024,)
local2/biases:0
(1024, 0)
softmax_linear/weights:0
(0,)
softmax_linear/biases:0

我不确定RHS参数是从哪里来的。我查看了所有配置文件,似乎没有任何参数指定此配置。

任何帮助解决这一问题的人将不胜感激。


Tags: 模型图像tfvariablesallshapeweightsbiases
3条回答

尝试删除以前运行中保存的所有检查点。有时当改变架构并再次运行时,TF会从旧的检查点(但是有了新的定义)中获取信息,您会得到这个错误。

我也遇到了这个问题,问题是标签和类号不匹配,所以我更改并修复了所有的类号和标签。

在我的例子中,是在faster_rcnn.config中更改“num_classes”参数 以及“label_map.pbtxt”文件以匹配实际值。

所以碰巧,我更新了TensorFlow代码,但没能训练它。因此,我回滚到以前的版本,对运行脚本进行了适当的新更改并使其正常工作。

相关问题 更多 >