我是否应该运行单独的线程将模型保存在Pytorch中

时间:2018-12-01 09:46:15

标签: python python-3.x python-multithreading pytorch

考虑来自PyTorch Imagenet Example的以下代码段(请注意“ #AREA OF兴趣”)

try:
for epoch in range(1, args.epochs+1):
    epoch_start_time = time.time()
    train()
    val_loss = evaluate(val_data)
    # Save the model if the validation loss is the best we've seen so far.
    if not best_val_loss or val_loss < best_val_loss:
        # AREA OF INTEREST ##########
        with open(args.save, 'wb') as f:
            torch.save(model, f)
        #############################
        best_val_loss = val_loss
    else:
        # Anneal the learning rate if no improvement has been seen in the validation dataset.
        lr /= 4.0

问题是:我应该运行一个单独的线程来保存模型以便节省时间,还是我对此过程过度了?即,不值得运行单独的线程?我检查了torch.save的文档,但没有找到想要的。

1 个答案:

答案 0 :(得分:1)

这取决于您的型号。如果您的IO速度慢且模型较大,则可能需要一些时间。但是通常的FS缓存足以存储整个模型。