我有一批意见:
input = tf.placeholder(tf.float32, [NUM_SAMPLE, None, 15])
对于批处理中的每一个,我都有一个描述行之间关系的字典。它看起来像:
dic = {i:{j:rij,k:rik,...},j:{i:rij,l:rjl,...},...}
现在我要对每个样本和相应的dic做这个:
updated_sample = sample
for i in range(len(sample)):
for j in dic[i]:
tmp = concanate(sample[j],rij)
updated_sample[i] += matmul(tmp,W)
其中,所有样本和行的W都相同
但是,我不能在tensorflow中使用len(sample)。似乎tf.while_loop
可能是答案,但我不知道如何在这个问题上使用它。有什么建议吗
另外,在张量流中我可以这样使用字典吗
在tensorflow中有两个类似的
len(sample)
:第一个
tf.shape(sample)
返回一个长度等于张量秩的整数张量,doingtf.shape(sample)[0]
是一个具有形状()
的张量,应该在tenosrflow工作流中使用第二个
sample.get_shape()
返回一个Tensor.shape对象,执行sample.get_shape().as_list()
将其转换为整数列表在你的情况下,你应该使用其中的第二个
还可以考虑在numpy级别执行此计算,然后通过占位符将它们输入到图形中
相关问题 更多 >
编程相关推荐