我有以下代码:
_X = np.arange(1, 7).reshape((2, 3))
_Y = np.arange(1, 7).reshape((3, 2))
X = tf.convert_to_tensor(_X)
Y = tf.convert_to_tensor(_Y)
# Matrix multiplication
out1 = tf.matmul(X, Y)
对于它,我收到了这个错误:
TypeError: Value passed to parameter 'a' has DataType int64 not in list of allowed values: float16, float32, float64, int32, complex64, complex128
我使用的是最新版本的Tensorflow。可能是什么问题?
答案 0 :(得分:4)
输入到tf.matmul只接受这些dtypes:
a: Tensor of type float16, float32, float64, int32, complex64, complex128 and rank > 1.
将X和Y的dtype更改为上面的dtypes。
import tensorflow as tf
import numpy as np
_X = np.arange(1, 7).reshape((2, 3))
_Y = np.arange(1, 7).reshape((3, 2))
X = tf.convert_to_tensor(_X,dtype=tf.int32)
Y = tf.convert_to_tensor(_Y,dtype=tf.int32)
# Matrix multiplication
out1 = tf.matmul(X, Y)
sess = tf.Session()
print(sess.run(out1))
答案 1 :(得分:0)
您可以尝试这种方式:
def weighted_binary_crossentropy(y_true, y_pred):
y_true = tensorflow.cast(y_true, tensorflow.float32)
y_pred = tensorflow.cast(y_pred, tensorflow.float32)
...