Я работаю с текстом и использую torchtext.data.Dataset
.Создание набора данных занимает значительное количество времени.Для просто запуска программы это все еще приемлемо.Но я хотел бы отладить код факела для нейронной сети.И если python запускается в режиме отладки, создание набора данных занимает примерно 20 минут (!!).Это просто для получения рабочей среды, в которой я могу отлаживать пошаговый код нейронной сети.
Я хотел бы сохранить набор данных, например, с помощью pickle.Этот пример кода взят из здесь , но я удалил все, что не нужно для этого примера:
from torchtext import data
from fastai.nlp import *
PATH = 'data/aclImdb/'
TRN_PATH = 'train/all/'
VAL_PATH = 'test/all/'
TRN = f'{PATH}{TRN_PATH}'
VAL = f'{PATH}{VAL_PATH}'
TEXT = data.Field(lower=True, tokenize="spacy")
bs = 64;
bptt = 70
FILES = dict(train=TRN_PATH, validation=VAL_PATH, test=VAL_PATH)
md = LanguageModelData.from_text_files(PATH, TEXT, **FILES, bs=bs, bptt=bptt, min_freq=10)
with open("md.pkl", "wb") as file:
pickle.dump(md, file)
Чтобы запустить код, вам нужен набор данных aclImdb, его можно загрузитьс здесь .Распакуйте его в папку data/
рядом с этим фрагментом кода.Код выдает ошибку в последней строке, где используется pickle:
Traceback (most recent call last):
File "/home/lhk/programming/fastai_sandbox/lesson4-imdb2.py", line 27, in <module>
pickle.dump(md, file)
TypeError: 'generator' object is not callable
В образцах из fastai часто используется dill вместо pickle.Но это тоже не работает для меня.