gpt4 book ai didi

tensorflow - TensorFlow错误:登录名和标签大小必须相同

转载 作者:行者123 更新时间:2023-12-03 22:25:22 24 4
gpt4 key购买 nike

我一直在尝试通过基于互联网上的各种示例来实现AboutlyAlexNet来学习TensorFlow。基本上将AlexNet示例here扩展为拍摄224x224 RGB图像(而不是28x28灰度图像),并根据我在网上找到的其他AlexNet实现,添加更多层,更改内核大小,步幅等。

解决了许多不匹配的形状类型错误,但这使我难过:

tensorflow.python.framework.errors.InvalidArgumentError: logits and labels must be same size: logits_size=dim { size: 49 } dim { size: 10 } labels_size=dim { size: 1 } dim { size: 10 }
[[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"](Softmax, _recv_Placeholder_1_0/_13)]]
[[Node: gradients/Mean_grad/range_1/_17 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_457_gradients/Mean_grad/range_1", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]


49尺寸特别令人困惑。对于调试,当前的批处理大小为1,如果将其增加到2,则49变为98。

如果我记录传递给x和y的形状

sess.run(optimizer, feed_dict={x: batchImages, y: batchLabels, keepProb: P_DROPOUT})


我懂了

x shape: (1, 150528)
y shape: (1, 10)


符合预期:150528 = 224 * 224 RGB像素,一个热标签代表我的标签。

希望能帮助您解决这个问题!

更新:代码在此处显示故障:

https://gist.github.com/j4m3z0r/e70096d0f7bd4bd24c42

最佳答案

感谢您分享您的要点代码。为了使形状一致,必须进行两项更改:


该行:

fc1 = tf.reshape(pool5, [-1, wd1Shape[0]])


...导致批次维度中的错误 49。输入为1 x 7 x 7 x 256,并且由于 wd1Shape[0]为256,因此将其调整为49 x256。以下是一种可能的替换:

pool5Shape = pool5.get_shape().as_list()
fc1 = tf.reshape(pool5, [-1, pool5Shape[1] * pool5Shape[2] * pool5Shape[3]])


...这将使 fc1的形状为1 x 12544。
进行此更改后, 'wd1'权重矩阵的大小(256 x 4096)与 fc1中的节点数不匹配。您可以按如下方式更改此矩阵的定义:

    'wd1': tf.Variable(tf.random_normal([12544, 4096])),


...尽管您可能想要修改其他权重,或执行其他合并以减小此矩阵的大小。

关于tensorflow - TensorFlow错误:登录名和标签大小必须相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34519423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com