Theanoのfunctionについて
inputsの書き方について
ソースを読んでいた時、これを知らなくて嵌ったのでメモ。
functionに渡すinputs
は下記のように指定することが多い。
from theano import * import theano.tensor as T a = T.dscalar('a') b = T.dscalar('b') z = (a + b)**2 f = function(inputs=[a, b], outputs=z) f(3, 2) # 25
inputs
はlistの形でないと怒られるが、必ずしもfunction内で記述しておく必要はない。
例えば下記のようにあらかじめlist化しておいても問題ない。
from theano import * import theano.tensor as T a = T.dscalar('a') b = T.dscalar('b') inputs = [a, b] z = (a + b)**2 f = function(inputs=inputs, outputs=z) f(3, 2) # 25
使い方として、functionに渡す引数が不定などの場合に便利
考えてみれば当たり前のことだが、長いソースを読んでいると(特にtheanoの場合)関数のパラメータを見失いがちなのでメモ。