如何使用TensorFlow在一个层中创建并行线性计算?

时间:2018-05-25 10:15:11

标签: tensorflow

我有大小[batch_size,height,width]的输入。在这里,我想在一个层中进行几种不同的并行线性变换,即

x = tensor([batch_size, height, width])
y = [W1*x, W2*x, W3*x,...,Wn*x]

我注意到TensorFlow中有fully_connectedlayer.dense,但它们一次只能进行一次线性转换?我可以用它们进行并行线性变换吗?

我是TensorFlow的新手,对不起,如果这个问题有点愚蠢。

1 个答案:

答案 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)