強化学習を使用するニューラルネットワークを作成しようとしていました。私はライブラリとしてscikit-neuralnetworkを選んだ(これは単純なので)。しかし、それは二度とフィニッシュがテアノをクラッシュさせるようです。sknn - 2番目のフィットで入力ディメンションの不一致があります
は、ここでのクラッシュの原因となる最も単純なコードです(注、何であるか層は関係ありません、また学習率やn_iterん):
import numpy as np
from sknn.mlp import Classifier, Layer
clf = Classifier(
layers=[
Layer("Softmax")
],
learning_rate=0.001,
n_iter=1)
clf.fit(np.array([[0.]]), np.array([[0.]])) # Initialize the network for learning
X = np.array([[-1.], [1.]])
Y = np.array([[1.], [0.]])
clf.fit(X, Y) # crash
をそしてここで私が得たエラーがあります: Pythonの2.7.11
でテスト
ValueError: Input dimension mis-match. (input[0].shape[1] = 2, input[1].shape[1] = 1)
Apply node that caused the error: Elemwise{Mul}[(0, 1)](y, LogSoftmax.0)
Toposort index: 12
Inputs types: [TensorType(float64, matrix), TensorType(float64, matrix)]
Inputs shapes: [(1L, 2L), (1L, 1L)]
Inputs strides: [(16L, 8L), (8L, 8L)]
Inputs values: [array([[ 1., 0.]]), array([[ 0.]])]
Outputs clients: [[Sum{axis=[1], acc_dtype=float64}(Elemwise{Mul}[(0, 1)].0)]]
sknnフィッティング複数回をサポートしていないか、私はいくつかのばかばかしいをしています間違い?そうでない場合は、どのように強化学習を実装することになっていますか?
sknnは何partial_fitを持っていないが(ちなみに、この質問をする前にそれを見つけることを試みました)。ああ、私はSklearnのニューラルネットワークをまったく動作させることができませんでした。 – seequ
そのコードがうまく動作するため、どのバージョンを実行していますか? – ncfirth
sknnのドキュメントで 'partial_fit'メソッドを見ることができます。http://scikit-neuralnetwork.readthedocs.io/en/latest/module_mlp.html#classifier – ncfirth