Keras モデルに適合させるために私が使用しているリソース マネージャーは、サーバーへのアクセスを一度に 1 日に制限しています。この日の後、私は新しい仕事を始める必要があります。Keras を使用してエポック K で現在のモデルを保存し、そのモデルをロードしてエポック K+1 のトレーニングを継続することは可能ですか (つまり、新しいジョブで)?
質問する
7139 次
3 に答える
12
コールバックを指定することで、エポックごとに重みを保存できます。
weight_save_callback = ModelCheckpoint('/path/to/weights.{epoch:02d}-{val_loss:.2f}.hdf5', monitor='val_loss', verbose=0, save_best_only=False, mode='auto')
model.fit(X_train,y_train,batch_size=batch_size,nb_epoch=nb_epoch,callbacks=[weight_save_callback])
これにより、エポックごとに重みが保存されます。次に、それらを次のようにロードできます。
model = Sequential()
model.add(...)
model.load('path/to/weights.hf5')
もちろん、モデルはどちらの場合も同じである必要があります。
于 2016-04-01T14:40:29.343 に答える
1
次のエポックでトレーニングを自動的に開始できます..!
必要なのは、次のようにトレーニング ログ ファイルを使用してトレーニングを追跡することです。
from keras.callbacks import ModelCheckpoint, CSVLogger
if len(sys.argv)==1:
model=... # you start training normally, no command line arguments
model.compile(...)
i_epoch=-1 # you need this to start at epoch 0
app=False # you want to start logging from scratch
else:
from keras.models import load_model
model=load_model(sys.argv[1]) # you give the saved model as input file
with open(csvloggerfile) as f: # you use your training log to get the right epoch number
i_epoch=list(f)
i_epoch=int(i_epoch[-2][:i_epoch[-2].find(',')])
app=True # you want to append to the log file
checkpointer = ModelCheckpoint(savemodel...)
csv_logger = CSVLogger(csvloggerfile, append=app)
model.fit(X, Y, initial_epoch=i_epoch+1, callbacks=[checkpointer,csv_logger])
それはすべての人々です!
于 2020-11-22T11:13:05.433 に答える