gpt4 book ai didi

python - 在Tensorflow中,我可以使用tf.gather()进行部分连接吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:00 28 4
gpt4 key购买 nike

我正在尝试实现层之间的部分连接。比方说,我只想使用一些特征图,例如第一个和第三个。

  • 为此目的使用 tf.gather() 是否正确?
  • 我可以只使用索引运算符 [ ] 而不是下面的 tf.gather() 吗?
  • 收集索引在反向传播方面是否有效?我很难想象 Tensorflow 如何在内部反向传播过程中知道连接来自第一个和第三个(信息是硬编码的)。 tf.gather 函数会记住连接吗?

代码:

# let say, L1 is layer1 output of shape [batch_size x image_size x image_size x depth1]
partL1 = L1[:, :, :, [0,2]]
# W2 is a tf variable of shape [5, 5, 2, depth2]
conv2 = tf.nn.conv2d(partL1, W2)

最佳答案

是的,不,是的。 :-)(a) 是的,您可以按照您的建议使用 gather 来选择一个层的子集以传播到下一层。

(b) 不,很遗憾,您不能使用索引运算符。您需要显式调用 tf.gather()

(c) 是的,TensorFlow 会存储一份用于收集的索引副本,并将它们保存起来用于反向传播。可以看到the implementation of Gather's Gradient如果您对如何进行好奇 - 它会查看操作的输入并使用这些进行传播。

关于python - 在Tensorflow中,我可以使用tf.gather()进行部分连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36724357/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com