我正在嘗試累積矩陣值,並與步驟相乘: 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]]]'。如果您通過更多關於期望的信息來更新問題,我可能會更新我的答案並提供更多信息。 –