2016-11-26 12 views
3

私は現在ケラスを使って回帰ネットワークをトレーニングしようとしています。適切なトレーニングを確実にするために、私はcrossvalidationを使用して訓練したいと思っています。ケラスとクロスバリデーション

kerasには、クロスバリデーションをサポートする機能がないと思われますか?

私が見つけたと思われる唯一の解決策は、scikit test_train_splitを使用して、手動でkフォールドごとにmodel.fitを実行することです。これを手動で行うのではなく、すでに統合されたソリューションはありませんか?

答えて

2

いいえ...解決策のようです。 (私の知っているものの)

1

scikitがありますが、あなたは簡単にこれを行うのに役立ちますKerasのラッパーを学ぶ:https://keras.io/scikit-learn-api/

私は博士ジェイソン・ブラウンリーの例を読むことをお勧めします:https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/

def baseline_model(): 
     # create model 
     model = Sequential() 
     model.add(Dense(13, input_dim=13, kernel_initializer='normal', activation='relu')) 
     model.add(Dense(1, kernel_initializer='normal')) 
     # Compile model 
     model.compile(loss='mean_squared_error', optimizer='adam') 
     return model 

estimator = KerasRegressor(build_fn=wider_model, nb_epoch=100, batch_size=5, verbose=0) 
kfold = KFold(n_splits=10, random_state=seed) 
results = cross_val_score(pipeline, X, Y, cv=kfold) 
+0

このXが2次元であり、LSTMなどの3次元ではない場合にのみ機能します。 [ref](https://github.com/fchollet/keras/issues/1711) – shadi

関連する問題