Tensorflow权重充当线性缩放

时间:2017-03-30 12:28:10

标签: python machine-learning tensorflow neural-network

我有一个带有输出神经元的神经网络,我想在软最大值之前用训练过的权重线性缩放。

我有10个输出,我想要10个权重,在输出软最大值之前乘以每个输出。每个输出1个重量。

但我一直收到错误Shape must be rank 2 but is rank 1 for 'MatMul_2,它告诉我我的形状是[?,10], [10]

在我的代码之前

x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

现在是这个

x_ = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
W_pre_final = tf.Variable(tf.ones([10]))
y_pre_final = tf.matmul(x_, W) + b
y = tf.nn.softmax(tf.matmul(y_pre_final, W_pre_final))
y_ = tf.placeholder(tf.float32, [None, 10])

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找元素乘法,而不是矩阵乘法

tf.multiply(y_pre_final, tf.expand_dims(W_pre_final,0))