簡體   English   中英

Tensorflow-tf.matmul的conv特征和向量作為批處理matmul

[英]Tensorflow - tf.matmul of conv features and a vector as a batch matmul

我嘗試了以下代碼

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

c = tf.stack([c1, c2, c3], 4) (size: [128, 32, 32, 16, 3])

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

M = tf.matmul(c,alpha)

並且在tf.matmul

我想要的只是每個樣本的線性組合alpha[0]*c1 + alpha[1]*c2 + alpha[2]*c3 當批處理大小為1時,此代碼會很好,但是如果不是,我該怎么辦?

我應該重塑c1,c2,c3嗎?

我認為這段代碼有效; 驗證了它。

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('')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM