Tensorflow中遇到的错误

TypeError: Input 'b' of 'MatMul' Op has type float32 that does not match type int32 of argument 'a'.

loss = tf.reduce_mean(
  tf.nn.nce_loss(nce_weights, nce_biases, embed, train_labels,
                 num_sampled, vocabulary_size))

解决方案,修改 embed, train_labels参数位置

Expected int32, got list containing Tensors of type '_Message' instead.

错误原因:

tensorflow版本的问题:
tensorflow1.0及以后api定义:(数字在后,tensors在前)
tf.stack(tensors, axis=axis)
For example:

t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

# tensor t3 with shape [2, 3]
# tensor t4 with shape [2, 3]
tf.shape(tf.concat([t3, t4], 0)) ==> [4, 3]
tf.shape(tf.concat([t3, t4], 1)) ==> [2, 6]

tensorflow之前版本(0.x版本:数字在前,tensors在后),
解决方法

你可能感兴趣的:(Tensorflow中遇到的错误)