使用tensorflow,如何找到在装配过程中的一个划时代所花费的时间?

问题描述 投票:0回答:1

我沿着这个教程之后,https://www.tensorflow.org/tutorials/keras/basic_classification

当我使用model.fit(train_images, train_labels, epochs=5, verbose =1)拟合模型中,时间显示在Python控制台。我想通过使用time.clock()得到每个时代的挂钟时间。

我假设当添加多个时期的安装时间线性增加,但我想这个图表可以肯定的。

除了与1个划时代配件,然后2个时代,那么3个时代,等等,我怎么能制定出培训时间(配合时间)越来越多的时代吗?

python tensorflow
1个回答
0
投票

使用自定义回调可以打印到适合特定时代所花费的总时间。

class timecallback(tf.keras.callbacks.Callback):
    def __init__(self):
        self.times = []
        # use this value as reference to calculate cummulative time taken
        self.timetaken = time.clock()
    def on_epoch_end(self,epoch,logs = {}):
        self.times.append((epoch,time.clock() - self.timetaken))
    def on_train_end(self,logs = {}):
        plt.xlabel('Epoch')
        plt.ylabel('Total time taken until an epoch in seconds')
        plt.plot(*zip(*self.times))
        plt.show()

然后通过这个作为回调到这样的model.fit功能

timetaken = timecallback()
model.fit(train_images, train_labels, epochs=5,callbacks = [timetaken])

这个图表在训练结束的曲线图示出了采取模型高达从一开始就在一定时期培养的总时间。

如果你要绘制的每个时期的时间。您可以替换on_epoch_end的on_train_end方法。

def on_epoch_end(self,epoch,logs= {}):
    # same as the on_train_end function
© www.soinside.com 2019 - 2024. All rights reserved.