调用以下方法时:
losses = [tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
for logits, labels in zip(logits_series,labels_series)]
我收到以下ValueError:
ValueError: Only call `sparse_softmax_cross_entropy_with_logits` with named arguments (labels=..., logits=..., ...)
反对这一点:
[tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)
根据nn_ops.py的文档,我需要确保登录和标签初始化为以下内容:
def _ensure_xent_args(名称、哨兵、标签、逻辑):#确保所有参数都作为命名参数传递。如果哨兵不是无:引发ValueError(“只调用带有”labels=.,logits=.,.)命名参数的
%s
“% name)如果标签为None或logits为None:引发ValueError(”必须同时提供标签和日志“)。 Logits=X,标签=Y
这是什么原因?我是否将它们初始化为某种价值,比如损失?或?
发布于 2017-12-20 16:37:28
原因是_sentinel
是tf.nn.sparse_softmax_cross_entropy_with_logits
的第一个参数。
_sentinel
:用于防止位置参数。内部,不要使用。
这个API鼓励您命名您的论点,如下所示:
tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=labels)
..。这样您就不会意外地将logits
传递给labels
,反之亦然。
https://stackoverflow.com/questions/47909606
复制相似问题