【发布时间】:2015-11-14 22:19:47
【问题描述】:
我有两个 2D Theano 张量,分别称为 x_1 和 x_2,并假设 x_1 和 x_2 都具有形状 (1, 50)。现在,要计算它们的均方误差,我只需运行:
T.sqr(x_1 - x_2).mean(axis = -1).
但是,我想做的是构建一个新张量,该张量由它们以 10 为单位的均方误差组成。换句话说,由于我更熟悉 NumPy,所以我的想法是创建以下内容Theano 中的张量 M:
M = [theano.tensor.sqr(x_1[:, i:i+10] - x_2[:, i:i+10]).mean(axis = -1) for i in xrange(0, 50, 10)]
现在,由于 Theano 没有 for 循环,而是使用 scan(映射是一个特殊情况),我想我会尝试以下方法:
sequence = T.arange(0, 50, 10)
M = theano.map(lambda i: theano.tensor.sqr(x_1[:, i:i+10] - x_2[:, i:i+10]).mean(axis = -1), sequence)
但是,这似乎不起作用,因为我收到错误:
只有整数、切片 (
:)、省略号 (...)、numpy.newaxis (None) 和整数或布尔数组是有效的索引
有没有办法使用 theano.scan(或 map)循环遍历切片?提前致谢,因为我是 Theano 的新手!
【问题讨论】:
标签: arrays python-2.7 numpy slice theano