a=tf.constant([[1,2],[1,2],[1,2],[1,2],[1,2]])
b=tf.constant([[4, 5],[1, 2],[1,2]])
print(a)
print(b)
c=tf.matmul(a,b)
print(c)
提示报错:ValueError: Dimensions must be equal, but are 2 and 3 for 'MatMul' (op: 'MatMul') with input shapes: [5,2], [3,2].
主要原因matmul是矩阵乘法的方法,要求第一个矩阵的第二维和第二个矩阵的第一维相同
改成
a=tf.constant([[1,2],[1,2],[1,2],[1,2],[1,2]])
b=tf.constant([[4, 5],[1, 2]])
c=tf.matmul(a,b)
print(c)
就可以了
如果类型不一样
a=tf.constant([[1,2],[1,2],[1,2],[1,2],[1,2]]) b=tf.constant([[4.0, 5.0],[1.0, 2.0]]) print(a) print(b) c=tf.matmul(a,b) print(c)
TypeError: Input 'b' of 'MatMul' Op has type float32 that does not match type int32 of argument 'a'.
改成:
a=tf.constant([[1,2],[1,2],[1,2],[1,2],[1,2]],dtype=tf.float32) b=tf.constant([[4.0, 5.0],[1.0, 2.0]],dtype=tf.float32) print(a) print(b) c=tf.matmul(a,b) print(c)