1.计算模型每一次epoch
的时间
参考链接:https://blog.51cto.com/u_3826358/3924806
class TimeHistory(keras.callbacks.Callback):
def on_train_begin(self, logs={}):
self.times =[]
self.totaltime = time.time()
def on_train_end(self, logs={}):
self.totaltime = time.time()- self.totaltime
def on_epoch_begin(self, batch, logs={}):
self.epoch_time_start = time.time()
def on_epoch_end(self, batch, logs={}):
self.times.append(round(time.time()-self.epoch_time_start))
注意:由于本人只需要每次
epoch
时间的整数秒,所以使用round()函数对计算结果取整。
2.调用此函数:在fit_generator
的回滚中调用此方法
time_callback = TimeHistory()
history = model.fit_generator(
datagen.flow(X_train, y_train, batch_size=batch_size),
steps_per_epoch=len(X_train)/batch_size,
epochs=epochs, verbose=1, validation_data=(X_val, y_val), callbacks=[time_callback])
3.使用pandas
模块将每次epoch
的时间记录到excel
表中
data = pd.DataFrame(history.history)
data.insert(0,"epoch", history.epoch)
data.insert(1,"spendTime",time_callback.times)
data.to_excel('SegNet_16_15_relu.xlsx',float_format="%.4f",index=False)
其中,在原来生成的表格中新增两列,分别为
epoch
和spendTime
,分别表示迭代次数及其对应的每次迭代所花费的时间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)