【发布时间】:2017-08-03 15:18:12
【问题描述】:
看看这段代码:
import theano
import numpy
import theano.tensor as T
import numpy as np
x = T.dvector('x')
y = T.dvector('y')
def fun(x,a):
return x+a
results, updates = theano.scan(fn=fun,sequences=dict(input=x), outputs_info=dict(initial=y, taps=[-3]))
h = [10.,20,30,40,50,60,70]
f = theano.function([x, y], results)
g = theano.function([y], y)
print(f([1],h))
我已经把outputs_info'taps改成-2、-3等等,但是代码的结果还是一样的[11.0],我看不懂。谁能解释一下?
另一个问题。
import theano
import numpy
import theano.tensor as T
import numpy as np
x = T.dvector('x')
y = T.dvector('y')
def fun(x,a,b):
return x+a+b
results, updates = theano.scan(fn=fun,sequences=dict(input=x), outputs_info=dict(initial=y, taps=[-5,-3]))
h = [10.,20,30,40,50,60,70]
f = theano.function([x, y], results)
g = theano.function([y], y)
print(f([1,2,3,4],h))
输出是[41,62,83,85],85是怎么来的?
【问题讨论】:
-
看了教程的demo,还是看不懂。对于这段代码,h = [10.,20,30,40,50,60,70],我认为 taps=-1,表示 h[-1], taps=-2 表示 h[-2],但是扫描函数使用 h[0],结果总是 11.0
标签: python theano theano.scan