假设一个简单的神经网络有两个输入Tensorflow:
W0 = tf.Variable(tf.zeros([784, 100]))
b0 = tf.Variable(tf.zeros([100]))
h_a = tf.nn.relu(tf.matmul(x, W0) + b0)
W1 = tf.Variable(tf.zeros([100, 10]))
b1 = tf.Variable(tf.zeros([10]))
h_b = tf.nn.relu(tf.matmul(z, W1) + b1)
问题:在下一层将这两个图层合并为一个好方法是什么?
我的意思是:
h_master = tf.nn.relu(tf.matmul(concat(h_a, h_b), W_master) + b_master)
但是,我似乎无法为此找到合适的功能。
修改:请注意:如果我这样做:
h_master = tf.nn.tanh(tf.matmul(np.concatenate((h_a,h_b)),W_master) + b_master)
,
我收到以下错误:
ValueError: zero-dimensional arrays cannot be concatenated
(我的猜测是因为占位符被numpy视为空数组,因此h_a和h_b是零维的。)
答案 0 :(得分:2)
我找到了一种方法:
h_master = tf.nn.tanh(tf.matmul(tf.concat((h_a, h_b), axis=1), W_master) + b_master)
其中:
W_master = tf.Variable(tf.random_uniform([110, 10], -0.01, 0.01))
b_master = tf.Variable(tf.zeros([10]))