pythonの性質は、私がtheano関数を呼び出す方法の正式な定義を見つけるのは非常に困難です。長さ4と行列batch
のリストを与えられたときTheano:Theano関数を呼び出すための引数
、私は
validationFunction(batch[0],batch[1],batch[2],batch[3])
呼び出し、これは動作します。
私は
validationFunction(batch)
または
validationFunction((list(batch))
を呼び出すと、それは文句:
validationError += validationFunction(batch) # [0],batch[1], batch[2], batch[3])
File "/usr/lib64/python2.7/site-packages/theano/compile/function_module.py", line 786, in __call__
allow_downcast=s.allow_downcast)
File "/usr/lib64/python2.7/site-packages/theano/tensor/type.py", line 149, in filter
converted_data = theano._asarray(data, self.dtype)
File "/usr/lib64/python2.7/site-packages/theano/misc/safe_asarray.py", line 33, in _asarray
rval = numpy.asarray(a, dtype=dtype, order=order)
File "/usr/lib64/python2.7/site-packages/numpy/core/numeric.py", line 474, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: ('Bad input argument to theano function with name "dummy.py:96" at index 0(0-based)', 'could not broadcast input array from shape (7,3) into shape (7)')
私はシンボリック入力変数とminibatchesの対応するリストのリストを持っています。バッチは次の形式になります: print( "batch singular = \ n0:{} \ n1:{} \ n2:{} \ n3:{}" ]、バッチ[3]))
0:[[3.0 3.0 2.0]
[3.0 2.0 5.0]
[2.0 5.0 3.0]
[5.0 3.0 4.0]
[3.0 4.0 3.0]
[4.0 3.0 2.0]
[3.0 2.0 6.0]]
1:[[5.0 3.0 4.0]
[3.0 4.0 3.0]
[4.0 3.0 2.0]
[3.0 2.0 6.0]
[2.0 6.0 6.0]
[6.0 6.0 6.0]
[6.0 6.0 2.0]]
2:[[3.0 2.0 14.0]
[2.0 2.0 14.0]
[6.0 2.0 14.0]
[6.0 2.0 14.0]
[6.0 2.0 14.0]
[2.0 2.0 14.0]
[4.0 2.0 14.0]]
3:[[2.0]
[6.0]
[6.0]
[6.0]
[2.0]
[4.0]
[4.0]]
だから、基本的に、どのように1をハードコーディングすることなく、[1]、...、[N-1])、[0](validationFunctionを呼び出すことができます.. .n?どのようなは引数の定義ですか?
機能をinputVarsがtheanoマトリックスのリストであり、targetVarがtheano行列で
validationFunction= theano.function(inputVars + [targetVar], testLoss)
定義されます。私は別の方法で関数を定義する必要がありますか? inputVars + [targetVar]
は、3つの入力と1つのターゲットのリストを作成します。
私はすでにtheanoとそのスタイルで多くの時間を費やしましたが、いくつかのことはあまりにもコンパクトであると書かれています。
入力は、変数またはインスタンスとして指定できます。また、 には変数がありますが、その変数に対応する呼び出し時引数がどのように使用されるべきかに関するいくつかの追加情報が添付されています。 同様に、Outインスタンスは、出力変数 がどのように返されるべきかについての情報を添付することができます。