考虑来自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的文档,但没有找到想要的。
答案 0 :(得分:1)
这取决于您的型号。如果您的IO速度慢且模型较大,则可能需要一些时间。但是通常的FS缓存足以存储整个模型。