2016-11-13 12 views
2

私は現在、回帰ネットワークを訓練するためにケラスを使用しています。ケラスを使って作られたモデルに入力/出力データをどのように解析すればよいですか?

ネットワークは構築されていますが、入力データと出力データをモデルに渡す方法についてはわかりません。

入力と出力の両方がnumpy配列のリストとして格納されます。 入力リストのnumpy配列の形状は、(400行、yの列)です。 および出力でnumpyのアレイは、(Y行、13列)の形状を有している

ネットワークの入力寸法は400であり、出力はdocumentationに記載の

あります。

fit(self, x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None) 

X:numpyのアレイのnumpyの配列またはリストとして入力データ(モデルは、複数の入力を有する場合)。

y:Numpy配列としてのラベル。

この場合、yはラベルではなく、生データでもあります。しかし、どのようにそのモデルを確実にするか。入力と行の各列を出力として取ることを知っています。リスト内のすべての項目に対して行います。

何もせずにデータを解析するだけで、このエラーが発生します。

Traceback (most recent call last): 
    File "tensorflow_datapreprocess_mfcc_extraction_rnn.py", line 167, in <module> 
    model.fit(train_set_data,train_set_output,verbose=1) 
    File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 620, in fit 
    sample_weight=sample_weight) 
    File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1034, in fit 
    batch_size=batch_size) 
    File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 961, in _standardize_user_data 
    exception_prefix='model input') 
    File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 51, in standardize_input_data 
    '...') 
Exception: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 1 arrays but instead got the following list of 270 arrays: [array([[ -1.52587891e-04, 3.05175781e-05, -1.52587891e-04, 
     -5.18798828e-04, 3.05175781e-05, -3.96728516e-04, 
      1.52587891e-04, 3.35693359e-04, -9.15527344e-05, 
      3.3... 

コード:

print "Training!" 
model = Sequential() 
model.add(Dense(output_dim=13, input_dim=400, init="normal")) 
model.add(Activation("relu")) 
model.compile(loss='mean_squared_error', optimizer='sgd') 
model.fit(train_set_data,train_set_output,verbose=1) 
+0

ステップはどのようにコンパイルされますか?モデルを定義したら、それをコンパイルする必要があります。私はあなたがカテゴリクロスエントロピーを使用する必要があるかもしれないコンパイルステップです – venuktan

+0

....?私はそれがどう関係しているのか分かりませんか? はmodel.fitのステップの一部ではありませんか? – Loser

+0

上記のリンクの例のセクションをご覧ください – venuktan

答えて

1

、すなわち

x = np.transpose(x) 

その後、あなたは(number_samples、number_featuresの形であなたのトレーニング入力を持っている必要があり、numpyの配列をtranposingことにより、あなたのトレーニングの入力を再形成するようにしてください)、これは入力の必須フォーマットです。あなたのトレーニング出力は、すでに適切な形式になっています。

関連する問題