当前位置:   article > 正文

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

怎么用代码来计算每个epoch的时间

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注意:由于本人只需要每次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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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)
  • 1
  • 2
  • 3
  • 4

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/261719
推荐阅读
相关标签
  

闽ICP备14008679号