2016-04-26 8 views
4

私はケアを使って時系列を予測しています。私は標準で20エポックを使用しています。私は自分のニューラルネットワークが20エポックのそれぞれについて何を予測するのか知りたい。Python/Keras - ModelCheckpointコールバックにアクセス

model.predictを使用すると、最後の予測が得られます。しかし、私はすべての予測、または少なくとも最後の10種類(許容誤差レベルを有する)を望む。

これにアクセスするには、私はKerasからModelCheckpoint関数を試していますが、後でアクセスするのに問題があります。私は/コードを実行した後、私は、フォルダ/ユーザー内checkpoint.hdf5という名前のファイルを見つけることが期待さ

  • :、

    model=Sequential() 
    
    model.add(GRU(input_dim=col,init='uniform',output_dim=20)) 
    model.add(Dense(10)) 
    model.add(Dense(5)) 
    model.add(Activation("softmax")) 
    model.add(Dense(1)) 
    
    model.compile(loss="mae", optimizer="RMSprop") 
    
    checkpoint=ModelCheckpoint(filepath='/Users/Alex/checkpoint.hdf5') 
    
    model.fit(X=predictor_train, y=target_train, nb_epoch=20, batch_size=batch,validation_split=0.1) #best validation split at 0.1 
    model.evaluate(X=predictor_train, y=target_train,batch_size=batch,show_accuracy=True) 
    
    print checkpoint 
    

    客観的に私の質問は以下のとおりです。私は、次のコードを使用していますアレックス、しかし私はしませんでした。私は何が欠けていますか?

  • checkpointを印刷すると、keras.callbacks.ModelCheckpoint object at 0x117471290となります。私が欲しいものを印刷する方法はありますか?コードはどのように見えますか?

あなたのヘルプは非常に高く評価される:)

答えて

8

このコードでは二つの問題があります

  • あなたは、モデルのフィットメソッドにコールバックを渡していませんが。これはキーワード引数 "callbacks"で行われます。
  • ファイルパスは、プレースホルダー(のような "{エポック:02D} - {val_loss:.2f}" を含むべきである。別のファイルへの各エポックを節約するためにKerasによってstr.formatと共に使用さ

だから、正しいバージョンのようなものでなければなりません:あなたはまた、そのキーワードに割り当てられているリストにコールバックの他の種類を追加することができます

checkpoint = ModelCheckpoint(filepath='/Users/Alex/checkpoint-{epoch:02d}-{val_loss:.2f}.hdf5') 

model.fit(X=predictor_train, y=target_train, nb_epoch=20, 
     batch_size=batch,validation_split=0.1, callbacks=[checkpoint]) 

残念ながら、コールバックオブジェクトは、その履歴情報を保存しませんそれは私から回復することはできませんt。

+0

このファイルをcsvまたはtxtに保存する方法はありますか? hdf5は非常に扱いにくいです... – abutremutante

+0

@abutremutanteいいえ、HDF5はh5pyで使いやすいですが、なぜそれを扱う必要がありますか? load_weightsを使用してモデルに荷重を読み込むことができます –

関連する問題