tensorflow - Tensorflow 中的矢量移位(滚动)

标签 tensorflow theano keras

假设我们确实想使用 Keras/TensorFlow 处理图像(或 ndim 向量)。
并且我们希望,为了花哨的正则化,将每个输入向左移动随机数量的位置(owerflown 部分重新出现在右侧)。

如何查看和解决:

1)

TensorFlow 的 numpy roll 函数有什么变化吗?

2)

x - 2D tensor
ri - random integer
concatenate(x[:,ri:],x[:,0:ri], axis=1) #executed for each single input to the layer, ri being random again and again (I can live with random only for each batch)

最佳答案

我只需要自己做这件事,不幸的是,我认为没有 tensorflow op 可以做 np.roll。你上面的代码看起来基本上是正确的,除了它不是由 ri 滚动,而是由 (x.shape[1] - ri) 滚动。

此外,您还需要小心选择来自 range(1,x.shape[1]+1) 而不是 range(0,x.shape[1]) 的随机整数,就好像 ri 是 0,那么 x [:,0:ri] 将是空的。

所以我的建议更像是(沿着维度 1 滚动):

x_len = x.get_shape().as_list()[1] 
i = np.random.randint(0,x_len) # The amount you want to roll by
y = tf.concat([x[:,x_len-i:], x[:,:x_len-i]], axis=1)

编辑:在 hannes 的正确评论后添加了缺少的冒号。

关于tensorflow - Tensorflow 中的矢量移位(滚动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783790/

相关文章:

python - 验证卷积编码器的结构

python - `tf.multiply` 和 `*` 和有什么区别?

python - 如何将比较 (min,gt) 运算应用于 Theano 变量的 ndarray?

python-2.7 - 进口theano得到非法指令

python - 导入错误 : cannot import name 'backend'

python - 使用 App Engine Google Cloud 部署 TensorFlow 应用程序时出错

python - 使用 Theano 沿特定维度添加张量

import - Tensorflow 0.8 import/export 输出张量问题

python - 使用 Keras 进行棋子彩色图像分类

python - 在评估 TensorFlow 模型时,如何在单个前向调用中查看特定隐藏层的值?