首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:仅使用命名参数(labels=...,logits=...,...)调用`softmax_cross_entropy_with_logits`

ValueError:仅使用命名参数(labels=...,logits=...,...)调用`softmax_cross_entropy_with_logits`
EN

Stack Overflow用户
提问于 2017-11-13 12:18:50
回答 1查看 5.1K关注 0票数 4

你能指导一下如何解决这个问题吗?

代码语言:javascript
复制
with tf.name_scope('loss'):
    #cross_entropy = None
    val = tf.nn.softmax_cross_entropy_with_logits(y_conv, y_)
    cross_entropy = tf.reduce_mean(val)

with tf.name_scope('adam_optimizer'):
    #train_step = None
    train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)

我得到了这个错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-40-f67d0aecc114> in <module>()
      1 with tf.name_scope('loss'):
      2     #cross_entropy = None
----> 3     val = tf.nn.softmax_cross_entropy_with_logits(y_conv, y_)
      4     cross_entropy = tf.reduce_mean(val)
      5 

~/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/nn_ops.py in softmax_cross_entropy_with_logits(_sentinel, labels, logits, dim, name)
   1576   """
   1577   _ensure_xent_args("softmax_cross_entropy_with_logits", _sentinel,
-> 1578                     labels, logits)
   1579 
   1580   # TODO(pcmurray) Raise an error when the labels do not sum to 1. Note: This

~/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/nn_ops.py in _ensure_xent_args(name, sentinel, labels, logits)
   1531   if sentinel is not None:
   1532     raise ValueError("Only call `%s` with "
-> 1533                      "named arguments (labels=..., logits=..., ...)" % name)
   1534   if labels is None or logits is None:
   1535     raise ValueError("Both labels and logits must be provided.")

ValueError: Only call `softmax_cross_entropy_with_logits` with named arguments (labels=..., logits=..., ...)

另外,tf.__version__返回'1.0.0',而我在OSX Sierra上有Anaconda Python 3.6.2

EN

回答 1

Stack Overflow用户

发布于 2017-11-13 12:29:33

这很容易修复:softmax_cross_entropy_with_logits()有三个关键参数:_sentinellabelslogits。标记必须为空,需要使用命名参数。

已修复(尽管我不确定在这种情况下y_convy_是标签还是logit,因此您可能必须交换它们):

代码语言:javascript
复制
with tf.name_scope('loss'):
    #cross_entropy = None
    val = tf.nn.softmax_cross_entropy_with_logits(labels = y_conv, logits=y_)
    cross_entropy = tf.reduce_mean(val)

with tf.name_scope('adam_optimizer'):
    #train_step = None
    train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47257002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档