我正在尝试累积矩阵值,并与步骤相乘: res = sum_i(i * a)。我的代码如下所示:使用Theano扫描功能进行简单累加时遇到的问题
import numpy as np
from theano import function, scan
import theano.tensor as T
x = T.lmatrix()
results, updates = scan(
lambda res, step, x: res + step * x,
non_sequences=x,
sequences=T.arange(2),
outputs_info=T.zeros_like(x))
f = function([x], results)
a = np.array([[0, 0], [2, 2]], 'int64')
print(f(a))
此输出:
[[[0 0]
[0 0]]
[[1 1]
[1 1]]]
尽管我希望这样的:
[[[0 0]
[0 0]]
[[0 0]
[2 2]]]
我已经提供了一个答案,解释了为什么你会得到你实际得到的输出,但不能评论为什么你的期望不同,因为它不清楚*你为什么期望输出[[[[0 0] [ 0 0]] [[0 0] [2 2]]]'。如果您通过更多关于期望的信息来更新问题,我可能会更新我的答案并提供更多信息。 –