vanzytay / pytorch_sentiment_rnn

Example Recurrent Neural Networks for Sentiment Analysis (Aspect-Based) on SemEval 2014
76 stars 14 forks source link

Error using Anaconda Python 3.6 in pickle #4

Open monajalal opened 6 years ago

monajalal commented 6 years ago

So here:

    glove_path = './embeddings/glove_{}_{}.pkl'.format(dataset,mode)
    if(os.path.isfile(glove_path)):
            print("Reusing glove dictionary to save time")
            #with open(glove_path,'r') as f:
            with open(glove_path, 'rb') as f: #python 3 for pickle byte size object is needed not str
                    glove = pickle.load(f)
            save = False

If I try

with open(glove_path,'r') as f:

I get the following error:

    Reusing glove dictionary to save time
    Traceback (most recent call last):
      File "prepare.py", line 315, in <module>
        glove = pickle.load(f)
    TypeError: a bytes-like object is required, not 'str'

and if I try

with open(glove_path, 'rb') as f: #python 3 for pickle byte size object is needed not str

I get the following error:

Reusing glove dictionary to save time
Traceback (most recent call last):
  File "prepare.py", line 315, in <module>
    glove = pickle.load(f)
EOFError: Ran out of input

Can you please guide how to fix this?

I have imported pickle like

import six; from six.moves import cPickle as pickle #import compatability with Python 2 using six while it was originally imported as:

import cPickle as pickle #python 2