我有一个模型,需要几个小时的训练。这行看起来像这样...
model.fit_generator(generator = generate_batch(X_train, y_train, batch_size = batch_size),
steps_per_epoch = train_samples//batch_size,
epochs=epochs,
validation_data = generate_batch(X_test, y_test, batch_size = batch_size),
validation_steps = val_samples//batch_size)
刷新笔记本时,它停止显示进度。在最近几个小时内,纪元8/50-75/237没有改变。内核已连接并且正忙。我怎么知道工作何时完成?
Epoch 1/50
237/237 [==============================] - 2730s 12s/step - loss: 6.6099 - acc: 0.1692 - val_loss: 5.9509 - val_acc: 0.1790
Epoch 2/50
237/237 [==============================] - 2953s 12s/step - loss: 5.7143 - acc: 0.1991 - val_loss: 5.5409 - val_acc: 0.2187
Epoch 3/50
237/237 [==============================] - 2895s 12s/step - loss: 5.3835 - acc: 0.2315 - val_loss: 5.3152 - val_acc: 0.2475
Epoch 4/50
237/237 [==============================] - 2858s 12s/step - loss: 4.6985 - acc: 0.2944 - val_loss: 4.7809 - val_acc: 0.3017
Epoch 8/50
75/237 [========>.....................] - ETA: 32:28 - loss: 4.1200 - acc: 0.3638
1)我不想使用python命令提示符。我想知道是否有可能使用Jupyter。
2)如果我中断了内核,我可以使用模型吗?可以,但我的准确性较低,因为我只是在测试脚本。
答案 0 :(得分:1)
您可以为此使用keras中的CSVLogger
。
您可以找到有关here的更多信息
演示用法示例如下
from keras.callbacks import CSVLogger
filename = 'training_log.csv'
logger = CSVLogger(filename, separator=',')
model.fit(X_train, Y_train, callbacks=[logger])
答案 1 :(得分:0)
这可以通过将标准保存到文件中来实现。
import sys
oldStdout = sys.stdout
file = open('logFile', 'w')
sys.stdout = file
model.fit(Xtrain, Ytrain)
sys.stdout = oldStdout