python计算模型每一次迭代(epoch)的时间,并将其通过pandas模块导出到excel文件

python计算模型每一次迭代(epoch)的时间,并将其通过pandas模块导出到excel文件,第1张

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)

其中,在原来生成的表格中新增两列,分别为epochspendTime,分别表示迭代次数及其对应的每次迭代所花费的时间

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/916624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存