我有大小[batch_size,height,width]的输入。在这里,我想在一个层中进行几种不同的并行线性变换,即
x = tensor([batch_size, height, width])
y = [W1*x, W2*x, W3*x,...,Wn*x]
我注意到TensorFlow中有fully_connected
和layer.dense
,但它们一次只能进行一次线性转换?我可以用它们进行并行线性变换吗?
我是TensorFlow的新手,对不起,如果这个问题有点愚蠢。
答案 0 :(得分:0)
利用广播:
import tensorflow as tf
batch_size, height, width = 5, 4, 3
n = 2
x = tf.random_uniform((batch_size, height, width))
W = tf.random_uniform((n,))
y = tf.multiply(tf.reshape(W, (n, 1, 1, 1)), tf.expand_dims(x, 0))
with tf.Session() as sess:
y = sess.run(y)
print(y.shape)
# (2, 5, 4, 3)