我有一个三维张量,source of (bsz x slen1 x nhd)和2d张量,index of shape (bsz x slen2)。更具体地说,我有:
source = 32 x 20 x 768
index = 32 x 16
index张量中的每个值都在[0, 19]之间,根据source张量的第2 dim值,source张量是期望向量的索引。
在索引之后,我期待一个形状的输出张量,32 x 16 x 768。
目前,我正在这样做:
bsz, _, nhid = source.size()
_, slen = index.size()
source = source.re
所以我有一个张量,model,其中M是模型的数目,B是批,C是类,每个单元是给定模型和批处理的类的概率。然后,我得到了一个正确答案的张量,也就是B大小的1D,我们称之为"t“。如何使用大小为1D的B来返回MxBx1,其中返回的张量只是正确类的值?假设M张量被称为"blah“,我试过了
blah[:, :, C]
for i in range(M):
blah[i, :, C]
blah[:, C, :]
前2只返回每个切片第3维中的索引t值。最后一个返回二维t索引处的值。我该怎么做?
我正在将输入传递到Conv1d层,我需要将时间张量(150)和要素张量(150,15)作为150,150,15维的单个张量传递,但无法这样做
我尝试使用tensorflow的堆栈函数
inp=tf.stack([features,times],axis=1)
我希望得到shape[times,features]=[150,150,15]的张量。但是我得到了这个错误,
ValueError: Shapes must be equal rank, but are 2 and 1
From merging shape 0 with other shapes. for 'stack