如何解决EOFError:出于情感分析模型而在Google Colab中用尽了
我正在尝试使用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 举报,一经查实,本站将立刻删除。