ita*_*ter 14 python machine-learning neural-network deep-learning keras
我想比较不同模型之间的计算时间.在拟合期间,每个纪元的计算时间被打印到控制台.
Epoch 5/5
160000/160000 [==============================] - **10s** ......
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来存储这些时间,类似于在每个时期保存并通过历史对象可用的模型指标.
Mar*_*jko 24
尝试以下回调:
class TimeHistory(keras.callbacks.Callback):
def on_train_begin(self, logs={}):
self.times = []
def on_epoch_begin(self, batch, logs={}):
self.epoch_time_start = time.time()
def on_epoch_end(self, batch, logs={}):
self.times.append(time.time() - self.epoch_time_start)
Run Code Online (Sandbox Code Playgroud)
然后:
time_callback = TimeHistory()
model.fit(..., callbacks=[..., time_callback],...)
times = time_callback.times
Run Code Online (Sandbox Code Playgroud)
在这种情况下times应该存储纪元计算时间.
小智 8
请参阅Marcin Mo?ejko的答案
import time
class TimeHistory(keras.callbacks.Callback):
def on_train_begin(self, logs={}):
self.times = []
def on_epoch_begin(self, epoch, logs={}):
self.epoch_time_start = time.time()
def on_epoch_end(self, epoch, logs={}):
self.times.append(time.time() - self.epoch_time_start)
Run Code Online (Sandbox Code Playgroud)
然后
time_callback = TimeHistory()
model.fit(..., callbacks=[..., time_callback],...)
Run Code Online (Sandbox Code Playgroud)
执行日志
Train on 17000 samples, validate on 8000 samples
Epoch 1/3
17000/17000 [==============================] - 5s 266us/step - loss: 36.7562 - mean_absolute_error: 4.5074 - val_loss: 34.2384 - val_mean_absolute_error: 4.3929
Epoch 2/3
17000/17000 [==============================] - 4s 253us/step - loss: 33.5529 - mean_absolute_error: 4.2956 - val_loss: 32.0291 - val_mean_absolute_error: 4.2484
Epoch 3/3
17000/17000 [==============================] - 5s 265us/step - loss: 31.0547 - mean_absolute_error: 4.1340 - val_loss: 30.6292 - val_mean_absolute_error: 4.1480
Run Code Online (Sandbox Code Playgroud)
然后
print(time_callback.times)
Run Code Online (Sandbox Code Playgroud)
输出
[4.531331300735474, 4.308278322219849, 4.505300283432007]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7582 次 |
| 最近记录: |