微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EOFError:出于情感分析模型而在Google Colab中用尽了

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?