当前位置:  开发笔记 > 编程语言 > 正文

TypeError:传递给参数“ a”的值的DataType不在允许值列表中

如何解决《TypeError:传递给参数“a”的值的DataType不在允许值列表中》经验,为你挑选了1个好方法。

我有以下代码:

_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。可能是什么问题?



1> 小智..:

tf.matmul的输入仅接受以下dtypes:

a: Tensor of type float16, float32, float64, int32, complex64, complex128 and rank > 1.

将X和Y的dtype更改为上述dtype即可。

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))

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有