codekansas/keras-language-modeling

_pickle.UnpicklingError: the STRING opcode argument must be quoted

PengTedShen opened this issue · 1 comments

Thank you for your great works and support.
Continue to do testing on "insurance_qa_eval.py", encountered error below:

Using Theano backend.
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.

C:\Users\Desktop\Deep_QA_System\data\insurance_qa_python\answers
(None, 1)
Traceback (most recent call last):
C:\Users\Desktop\Deep_QA_System\data\insurance_qa_python\train
File "C:/Users/PycharmProjects/insurance_qa_eval/insurance_qa_eval.py", line 272, in
best_loss = evaluator.train(model)
File "C:/Users/PycharmProjects/insurance_qa_eval/insurance_qa_eval.py", line 98, in train
training_set = self.load('train')
File "C:/Users/PycharmProjects/insurance_qa_eval/insurance_qa_eval.py", line 40, in load
return pickle.load(open(os.path.join(self.path, name), 'rb'))
_pickle.UnpicklingError: the STRING opcode argument must be quoted
Process finished with exit code 1

I suspect the error happened in load function
Line 36:
def load(self, name):
return pickle.load(open(os.path.join(self.path, name), 'rb'))

So I added print function to find the cause. It looks like for 'answers' it works and the data from answers can be printed out, but for 'train' , it failed.

For result on output of "(None, 1)", I do not know where it came from.

P.S. on your code line 245 : 'initial_embed_weights': np.load('models/word2vec_100_dim.h5'),
word2vec_100_dim.h5, do you mean "word2vec_100_dim.embeddings" which on github ?

I suspect the issue is because of file 'train' after testing file of answers and train
import six.moves.cPickle as pickle
import pprint
with open('C:\Users\Desktop\Deep_QA_System\data\insurance_qa_python\answers', 'rb') as f:
data1 = pickle.load(f)
pprint.pprint(data1)

There are all the data of 'answers' can be printed out , but if changed to 'train', still got error

Traceback (most recent call last):
File "C:/Users/PycharmProjects/insurance_qa_eval/pickle_testing.py", line 4, in
data1 = pickle.load(f)
_pickle.UnpicklingError: the STRING opcode argument must be quoted