Pytorch 记录 每一次迭代的 数据加载、模型计算 等时长

Pytorch 记录 每一次迭代的 数据加载、模型计算 等时长

使用 time 库如何记录pytorch处理每一批次时间消耗

可结合 tqdm 工具使用 效果更佳

import time

class Process:
    """
     Pytorch 记录 每一次迭代的 数据加载、模型计算 等时长
    """
    def __init__(self) -> None:
        pass

    def record_time(self):
        self.cur_time = time.time()
        # print("self.cur_time:", self.cur_time)
        return self.cur_time

    def split_time(self):
        split_time = time.time() - self.cur_time
        self.record_time()
        return split_time

    def start(self):
        self.record_time()
        timer = dict(dataloader=0.001, model=0.001, statistics=0.001)
        # or 
        # for i,data,label in enumerate(data_lodaer):
        for i in range(3): 
            time.sleep(2)
            # do something
            # time for datalodar each batch
            timer['dataloader'] += self.split_time()

            # do something
            # time for model(data_input)
            time.sleep(3)
            timer['model'] += self.split_time()
            
            # do something else
            # ...

        print(timer)

p = Process()
p.start()

运行结果

# print(timer)
{'dataloader': 6.014460874557495, 'model': 9.015425992965698, 'statistics': 0.001}

你可能感兴趣的:(python,pytorch,深度学习)