定义模型时使用动态形状的TensorFlow

2024-04-25 00:14:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一批意见:

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可能是答案,但我不知道如何在这个问题上使用它。有什么建议吗

另外,在张量流中我可以这样使用字典吗


Tags: sampleinforinputlen字典tftmp
1条回答
网友
1楼 · 发布于 2024-04-25 00:14:48

在tensorflow中有两个类似的len(sample)

  • tf.形状(示例)[0]
  • sample.get_shape().as_list()[0]

第一个tf.shape(sample)返回一个长度等于张量秩的整数张量,doing tf.shape(sample)[0]是一个具有形状()的张量,应该在tenosrflow工作流中使用

第二个sample.get_shape()返回一个Tensor.shape对象,执行sample.get_shape().as_list()将其转换为整数列表

在你的情况下,你应该使用其中的第二个

还可以考虑在numpy级别执行此计算,然后通过占位符将它们输入到图形中

相关问题 更多 >