我對Tensorflow完全陌生。我一直在嘗試重新編寫Deep MNIST教程來預測MovieLens數據集上的電影收視率。我略微簡化了模型,以便不使用5分制,而是簡單的二進制Y/N分級(類似於Netflix上的最新評級體系)。我試圖僅使用部分評分來預測新項目的偏好。當訓練模型,我得到的堆棧跟蹤以下錯誤:使用SoftmaxCrossEntropyWithLogits登錄和標籤必須具有相同的大小錯誤
Traceback (most recent call last):
File "/Users/Eric/dev/Coding Academy >Tutorials/tf_impl/deep_tf_group_rec_SO.py", line 223, in <module>
train_step.run(feed_dict={x: batch_xs, y_: batch_ys, keep_prob: 0.5})
File "/Library/Python/2.7/site->packages/tensorflow/python/framework/ops.py", line 1550, in run
_run_using_default_session(self, feed_dict, self.graph, session)
File "/Library/Python/2.7/site->packages/tensorflow/python/framework/ops.py", line 3764, in >_run_using_default_session
session.run(operation, feed_dict)
File "/Library/Python/2.7/site->packages/tensorflow/python/client/session.py", line 767, in run
run_metadata_ptr)
File "/Library/Python/2.7/site->packages/tensorflow/python/client/session.py", line 965, in _run
feed_dict_string, options, run_metadata)
File "/Library/Python/2.7/site->packages/tensorflow/python/client/session.py", line 1015, in _do_run
target_list, options, run_metadata)
File "/Library/Python/2.7/site->packages/tensorflow/python/client/session.py", line 1035, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: logits and >labels must be same size: logits_size=[1,2] labels_size=[50,2]
[[Node: SoftmaxCrossEntropyWithLogits = >SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, >_device="/job:localhost/replica:0/task:0/cpu:0"](Reshape_2, Reshape_3)]]
Caused by op u'SoftmaxCrossEntropyWithLogits', defined at:
File "/Users/Eric/dev/Coding Academy >Tutorials/tf_impl/deep_tf_group_rec_SO.py", line 209, in <module>
cross_entropy = >tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, >logits=y_conv))
File "/Library/Python/2.7/site->packages/tensorflow/python/ops/nn_ops.py", line 1617, in >softmax_cross_entropy_with_logits
precise_logits, labels, name=name)
File "/Library/Python/2.7/site->packages/tensorflow/python/ops/gen_nn_ops.py", line 2265, in >_softmax_cross_entropy_with_logits
features=features, labels=labels, name=name)
File "/Library/Python/2.7/site->packages/tensorflow/python/framework/op_def_library.py", line 763, in >apply_op
op_def=op_def)
File "/Library/Python/2.7/site->packages/tensorflow/python/framework/ops.py", line 2327, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/Library/Python/2.7/site->packages/tensorflow/python/framework/ops.py", line 1226, in __init__
self._traceback = _extract_stack()
InvalidArgumentError (see above for traceback): logits and labels must >be same size: logits_size=[1,2] labels_size=[50,2]
[[Node: SoftmaxCrossEntropyWithLogits = >SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, >_device="/job:localhost/replica:0/task:0/cpu:0"](Reshape_2, Reshape_3)]]
代碼導致錯誤可以被視爲在模型中使用的變量here
尺寸:
X( ?,1682)
Y_(?,2)
- X _history(?,290,290,1)
- h_pool1(?,145,145,32)
- h_pool2(?,73,73,64)
- h_pool3(?,37,37,128)
- h_pool4(?,19,19,256)
- h_pool5(?,10,10,512)
- h_fc1(?,1024)
- h_fc1_drop(?,1024)
- y_conv(?, 2)
我創建了一個要點:https://gist.github.com/EricSEkong/eaa67da30390a4eb2d50c282f3a2e4c7 –
如果是二進制評分,那麼爲什麼標籤尺寸是50x3? – Aaron
哦,夥計!如此愚蠢。我會解決這個問題,看看。謝謝 –