Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';用张量流进行矩阵乘法_Python_Tensorflow - Fatal编程技术网

Python Can';用张量流进行矩阵乘法

Python Can';用张量流进行矩阵乘法,python,tensorflow,Python,Tensorflow,在Tensorflow中,我想使用以下代码进行矩阵乘法: _X = np.array([[1, 2, 3], [4, 5, 6]]) _Y = np.array([[1, 1], [2, 2], [3, 3]]) X = tf.convert_to_tensor(_X) Y = tf.convert_to_tensor(_Y) res = tf.matmul(X, Y) 但是,我遇到了以下错误: TypeError Traceb

在Tensorflow中,我想使用以下代码进行矩阵乘法:

_X = np.array([[1, 2, 3], [4, 5, 6]])
_Y = np.array([[1, 1], [2, 2], [3, 3]])
X = tf.convert_to_tensor(_X)
Y = tf.convert_to_tensor(_Y)

res = tf.matmul(X, Y)
但是,我遇到了以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-29-37c04c70cff8> in <module>()
      4 Y = tf.convert_to_tensor(_Y)
      5 
----> 6 res = tf.matmul(X, Y)

/Downloads/tensorflow-exercises-master/lib/python3.5/site-packages/tensorflow/python/ops/math_ops.py in matmul(a, b, transpose_a, transpose_b, adjoint_a, adjoint_b, a_is_sparse, b_is_sparse, name)
   1799     else:
   1800       return gen_math_ops._mat_mul(
-> 1801           a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name)
   1802 
   1803 

/Downloads/tensorflow-exercises-master/lib/python3.5/site-packages/tensorflow/python/ops/gen_math_ops.py in _mat_mul(a, b, transpose_a, transpose_b, name)
   1261   """
   1262   result = _op_def_lib.apply_op("MatMul", a=a, b=b, transpose_a=transpose_a,
-> 1263                                 transpose_b=transpose_b, name=name)
   1264   return result
   1265 

/Downloads/tensorflow-exercises-master/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in apply_op(self, op_type_name, name, **keywords)
    588               _SatisfiesTypeConstraint(base_type,
    589                                        _Attr(op_def, input_arg.type_attr),
--> 590                                        param_name=input_name)
    591             attrs[input_arg.type_attr] = attr_value
    592             inferred_from[input_arg.type_attr] = input_name

/Downloads/tensorflow-exercises-master/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in _SatisfiesTypeConstraint(dtype, attr_def, param_name)
     59           "allowed values: %s" %
     60           (param_name, dtypes.as_dtype(dtype).name,
---> 61            ", ".join(dtypes.as_dtype(x).name for x in allowed_list)))
     62 
     63 

TypeError: Value passed to parameter 'a' has DataType int64 not in list of allowed values: float16, float32, float64, int32, complex64, complex128
TypeError回溯(最近一次调用)
在()
4y=tf。将_转换为_张量(_Y)
5.
---->6 res=tf.matmul(X,Y)
/下载/tensorflow练习master/lib/python3.5/site-packages/tensorflow/python/ops/math_ops.py(a,b,转置a,转置b,伴随a,伴随b,a是稀疏的,b是稀疏的,名称)
1799其他:
1800返回gen\u math\u ops.\u mat\u mul(
->1801 a,b,transpose_a=transpose_a,transpose_b=transpose_b,name=name)
1802
1803
/下载/tensorflow练习master/lib/python3.5/site-packages/tensorflow/python/ops/gen_math_ops.py in_mat_mul(a,b,transpose_a,transpose_b,name)
1261   """
1262结果=_op_def_lib.apply_op(“MatMul”),a=a,b=b,转置a=transpose_a,
->1263转置b=转置b,名称=名称)
1264返回结果
1265
/下载/tensorflow练习master/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in apply_op(self,op_type_name,name,**关键字)
588满足类型约束(基本类型,
589属性(操作定义,输入参数类型属性),
-->590参数名称=输入名称)
591属性[输入参数类型属性]=属性值
592根据[input_arg.type_attr]=input_name推断出的_
/下载/tensorflow练习master/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in_SatisfiesTypeConstraint(数据类型、属性定义、参数名称)
59“允许的值:%s”%
60(参数名称,数据类型.as\u数据类型(数据类型).name,
--->61“,”
62
63
TypeError:传递给参数“a”的值的数据类型int64不在允许的值列表中:float16、float32、float64、int32、complex64、complex128

知道代码有什么问题吗?

这是
tf.matmul
的文档:

两个矩阵的类型必须相同。支持的类型包括:
float16
float32
float64
int32
complex64
complex128

将数据类型更改为支持的数据类型之一可以消除此错误

_X = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int32)
_Y = np.array([[1, 1], [2, 2], [3, 3]], dtype=np.int32)
X = tf.convert_to_tensor(_X)
Y = tf.convert_to_tensor(_Y)

res = tf.matmul(X, Y)

sess = tf.Session()
res.eval(session=sess)
#array([[14, 14],
#       [32, 32]], dtype=int32)

以下是
tf.matmul
的文档:

两个矩阵的类型必须相同。支持的类型包括:
float16
float32
float64
int32
complex64
complex128

将数据类型更改为支持的数据类型之一可以消除此错误

_X = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int32)
_Y = np.array([[1, 1], [2, 2], [3, 3]], dtype=np.int32)
X = tf.convert_to_tensor(_X)
Y = tf.convert_to_tensor(_Y)

res = tf.matmul(X, Y)

sess = tf.Session()
res.eval(session=sess)
#array([[14, 14],
#       [32, 32]], dtype=int32)

你应该阅读我的最新帖子,它正好涵盖了这个例子:你应该阅读我的最新帖子,它正好涵盖了这个例子: