问题描述
我正在尝试使用Pytorch对IMDB数据集进行情感分析。在google colab上运行它会给我一个错误
EOFError Traceback (most recent call last)
<ipython-input-11-1af666a9752f> in <module>()
38 # Infer from BERT
39 else:
---> 40 model.load_state_dict(torch.load(path))
41 sentiment = predict_sentiment(model,tokenizer,TEXT)
42 print(sentiment)
1 frames
/usr/local/lib/python3.6/dist-packages/torch/serialization.py in load(f,map_location,pickle_module,**pickle_load_args)
593 return torch.jit.load(opened_file)
594 return _load(opened_zipfile,**pickle_load_args)
--> 595 return _legacy_load(opened_file,**pickle_load_args)
596
597
/usr/local/lib/python3.6/dist-packages/torch/serialization.py in _legacy_load(f,**pickle_load_args)
762 "functionality.")
763
--> 764 magic_number = pickle_module.load(f,**pickle_load_args)
765 if magic_number != MAGIC_NUMBER:
766 raise RuntimeError("Invalid magic number; corrupt file?")
EOFError: Ran out of input
以下是主要代码。我怀疑该错误是否与我使用的路径有关。请让我知道有关在Colab中正确设置路径的信息。
if __name__ == "__main__":
# Train BERT
if TRAIN:
# load data
train_iter,valid_iter,test_iter = load_data()
optimizer = optim.Adam(model.parameters())
criterion = nn.BCEWithLogitsLoss().to(device)
model = model.to(device)
best_val_loss = float('inf')
for epoch in range(N_EPOCHS):
# start time
start_time = time.time()
# train for an epoch
train_loss,train_acc = train(model,train_iter,optimizer,criterion)
valid_loss,valid_acc = evaluate(model,criterion)
# end time
end_time = time.time()
# stats
epoch_mins,epoch_secs = epoch_time(start_time,end_time)
# save model if has validation loss
# better than last one
if valid_loss < best_valid_loss:
best_valid_loss = valid_loss
torch.save(model.state_dict(),path)
# stats
print(f'Epoch: {epoch+1:02} | Epoch Time: {epoch_mins}m {epoch_secs}s')
print(f'\tTrain Loss: {train_loss:.3f} | Train Acc: {train_acc*100:.2f}%')
print(f'\t Val. Loss: {valid_loss:.3f} | Val. Acc: {valid_acc*100:.2f}%')
# Test
model.load_state_dict(torch.load(path))
test_loss,test_acc = evaluate(model,test_iter,criterion)
print(f'Test Loss: {test_loss:.3f} | Test Acc: {test_acc*100:.2f}%')
# Infer from BERT
else:
model.load_state_dict(torch.load(path))
sentiment = predict_sentiment(model,TEXT)
print(sentiment) ```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)