Tensorflow是否可以对数组进行可区分索引?更具体地说,如果我有一个以某种方式转换数组索引的float变量,是否可以获得相对于该变量的转换数组的梯度?基于空间变压器网络(https://arxiv.org/pdf/1506.02025v3.pdf和https://github.com/tensorflow/models/blob/master/transformer /spatial_transformer.py)。我已经尝试实现了这一点,但由于在使用tf.gather转换数组之前必须将转换后的索引转换为整数,因此遇到了麻烦,而且似乎无法通过渐变。有人会建议如何做吗?
不,您无法区分传统意义上的“读取数组的第 k 个元素”的索引。
但这里的技巧是对指数进行加权求和。权重本身的总和应为 1,使其成为概率分布。然后,神经网络的工作就是找出高置信度概率分布。这也是 LSTM 中的遗忘门的工作原理。
因此,您不是“读取第 k 个元素”...(希望)“取除第 k 个元素之外的所有元素的 ~0% 和第 k 个元素的 ~100% 的总和”。
当然,如果创建权重的模型不收敛,那么您将得到“所有 n 个元素的~1/n”。
归档时间: |
|
查看次数: |
428 次 |
最近记录: |