Tensorflow 在定义 nce_loss 时出错
Tensorflow gives error when defining nce_loss
我想获取 nce_loss 的渐变。我的代码如下:
loss = tf.reduce_mean(
tf.nn.nce_loss(weights=weights,
biases=biases,
labels=ids,
inputs=datapoint,
num_sampled=10,
num_classes=220))
grads = tf.gradients(loss, datapoint)
但是在定义损失时,出现错误:
File "/path/fgsm.py", line 163, in
main(config) File "/path/fgsm.py", line 95, in main
num_classes=220), File "/path/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn_impl.py",
line 1248, in nce_loss
name=name) File "/path/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn_impl.py",
line 1031, in _compute_sampled_logits
if labels.dtype != dtypes.int64: AttributeError: 'list' object has no attribute 'dtype'
我不明白这里的错误是什么。损失公式的输入应该是准确的。 num_classes 根据 api 是一个整数,它是示例给出的一个整数。这里有什么问题?
从给定的错误消息中,您可以看到它在谈论有关 labels
的内容。
所以我猜这是因为你的 ids
是 list
类型。
也许您应该将其转换为 numpy.ndarray
然后再试一次。
我想获取 nce_loss 的渐变。我的代码如下:
loss = tf.reduce_mean(
tf.nn.nce_loss(weights=weights,
biases=biases,
labels=ids,
inputs=datapoint,
num_sampled=10,
num_classes=220))
grads = tf.gradients(loss, datapoint)
但是在定义损失时,出现错误:
File "/path/fgsm.py", line 163, in main(config) File "/path/fgsm.py", line 95, in main num_classes=220), File "/path/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn_impl.py", line 1248, in nce_loss name=name) File "/path/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn_impl.py", line 1031, in _compute_sampled_logits if labels.dtype != dtypes.int64: AttributeError: 'list' object has no attribute 'dtype'
我不明白这里的错误是什么。损失公式的输入应该是准确的。 num_classes 根据 api 是一个整数,它是示例给出的一个整数。这里有什么问题?
从给定的错误消息中,您可以看到它在谈论有关 labels
的内容。
所以我猜这是因为你的 ids
是 list
类型。
也许您应该将其转换为 numpy.ndarray
然后再试一次。