使用 Theano 沿特定维度添加张量
Adding tensors along certain dimensions with Theano
我想了解如何使用 dimshuffle
将噪声传播到 4 维张量。例如,4 维张量的形状为 (num_examples, 3, 32, 32)
,其中 3 对应于 32*32 图像的 r、g、b 分量。我想添加高斯噪声,但是我想向所有三个分量(即 r、g、b)添加相同的噪声,并且对于每个示例,噪声将是一个随机的 32*32 矩阵。
所以我必须分别添加维度 (num_examples, 3, 32, 32)
和 (num_examples, 32, 32)
的两个张量。我一直无法弄清楚如何在第二个张量上使用 dimshuffle
以便它的最后两个维度变得可广播。
使用dimshuffle
x = T.tensor4() # Nx3x32x32
y = T.tensor3() # Nx32x32
z = y.dimshuffle(0, 'x', 1, 2) + x
我想了解如何使用 dimshuffle
将噪声传播到 4 维张量。例如,4 维张量的形状为 (num_examples, 3, 32, 32)
,其中 3 对应于 32*32 图像的 r、g、b 分量。我想添加高斯噪声,但是我想向所有三个分量(即 r、g、b)添加相同的噪声,并且对于每个示例,噪声将是一个随机的 32*32 矩阵。
所以我必须分别添加维度 (num_examples, 3, 32, 32)
和 (num_examples, 32, 32)
的两个张量。我一直无法弄清楚如何在第二个张量上使用 dimshuffle
以便它的最后两个维度变得可广播。
使用dimshuffle
x = T.tensor4() # Nx3x32x32
y = T.tensor3() # Nx32x32
z = y.dimshuffle(0, 'x', 1, 2) + x