機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

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の場合)関数のパラメータを見失いがちなのでメモ。