Я получаю ошибку памяти укропа/рассола при загрузке сериализованного объектного файла. Я не совсем уверен, что происходит, и я не уверен, как это исправить. Когда я звоню:
stat_bundle = train_batch_iterator(clf, TOTAL_TRAINED_EVENTS)
Код ведет к функции train_batch_iterator, в которой он загружает сериализованный объект и обучает классификатор с данными внутри объекта. Это код:
def train_batch_iterator(clf, tte):
plot_data = [] # initialize plot data array
for file in glob.glob('./SerializedData/Batch8172015_19999/*'):
with open(file, 'rb') as stream:
minibatch_train = dill.load(stream)
clf.partial_fit(minibatch_train.data[1], minibatch_train.target,
classes=np.array([11, 111]))
tte += len(minibatch_train.target)
plot_data.append((test_batch_iterator(clf), tte))
return plot_data
Вот ошибка:
Traceback (most recent call last):
File "LArSoftSGD-version2.0.py", line 154, in <module>
stat_bundle = train_batch_iterator(clf, TOTAL_TRAINED_EVENTS)
File "LArSoftSGD-version2.0.py", line 118, in train_batch_iterator
minibatch_train = dill.load(stream)
File "/home/jdoe/.local/lib/python3.4/site-packages/dill/dill.py", line 199, in load
obj = pik.load()
File "/home/jdoe/.local/lib/python3.4/pickle.py", line 1038, in load
dispatch[key[0]](self)
File "/home/jdoe/.local/lib/python3.4/pickle.py", line 1184, in load_binbytes
self.append(self.read(len))
File "/home/jdoe/.local/lib/python3.4/pickle.py", line 237, in read
return self.file_read(n)
MemoryError
Я понятия не имею, что может пойти не так. Ошибка, кажется, находится в строке minibatch_train = dill.load(stream)
, и единственное, о чем я могу думать, это то, что сериализованный файл данных слишком велик, однако размер файла составляет ровно 1161 МБ, что кажется недостаточно большим/достаточно большим, чтобы вызвать ошибку памяти. Кто-нибудь знает, что может пойти не так?