Tensorflow - 转换特征的tf.matmul和作为批处理matmul的向量

时间:2017-06-29 23:05:26

标签: tensorflow tensor

我尝试了以下代码

tf.matmul

它在alpha[0]*c1 + alpha[1]*c2 + alpha[2]*c3处出错。

我想要的只是每个样本的线性组合c1,c2,c3。批量大小为1时,此代码可以正常使用,但如果不是,我该怎么办?

我应该重塑len(l) == 6吗?

1 个答案:

答案 0 :(得分:0)

我认为这段代码有效;验证了它。

import tensorflow as tf
import numpy as np

batch_size= 128
c1 = tf.ones([128,32,32,16])
c2 = tf.ones([128,32,32,16])
c3 = tf.ones([128,32,32,16])

c = tf.stack([c1, c2, c3], 4)

alpha = tf.zeros([1,3])

for j in range(127):
    z = alpha[j] + 1
    z = tf.expand_dims(z,0)
    alpha = tf.concat([alpha,z],0)


M = tf.einsum('aijkl,al->aijk',c,alpha)



print('')

with tf.Session() as sess:
    _alpha = sess.run(alpha)
    _M = sess.run(M)


print('')