TensorFlow出现错误:ValueError: Dimensions must be equal, but are 32 and 3 for add (op: Add) with
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow
免费下载资源
·
使用tensorflow在训练神经网络中出现错误:
ValueError: Dimensions must be equal, but are 784 and 10 for 'add' (op: 'Add') with input shapes: [784,784], [10].
出现这种错误一般就是输入,输出矩阵,和 tf.matmul(weight, x) + bias 计算中矩阵不能相乘所造成的
matmul(weight, x)函数表示行数为weight,列数为x的矩阵
说白了就是矩阵相乘维度不一致导致,
比如输入矩阵为:49x2 输出矩阵为:49x3
整个网络计算的矩阵维度要一致,可以相乘。49x2 2x50 50x21 21x3 计算到最后得到 49x3正好是输出
#定义两个placeholder
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])
input_num=784
output_num=10
#神经网络层
weight = tf.Variable(tf.zeros([784, 10]))
bias = tf.Variable(tf.zeros([10]))
predict = tf.matmul(weight, x) + bias
none*784 × 784*mm x mm*10 矩阵相乘 结果为none*10 正好为输出y的矩阵形式,这样才可以进行计算
mm为任意数,这个在矩阵乘法中可以约掉
例如:
矩阵乘法是最常见的方法,也是在深度神经网络中用的很多的加权求和中的加权操作。两个矩阵做乘法,必须满足第一个矩阵的第二维和第二个矩阵的第一维要相等,结果的维度等于第一个矩阵的第一维和第二个矩阵的第二维。 比如mn的矩阵和np的矩阵,结果为m*p维矩阵。计算过程是第一个矩阵的每一行和第二个矩阵的每一列,即两个向量相乘。
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2
PiperOrigin-RevId: 663726708
2 个月前
91dac11a
This test overrides disabled_backends, dropping the default
value in the process.
PiperOrigin-RevId: 663711155
2 个月前
更多推荐
已为社区贡献6条内容
所有评论(0)