lhk*_*lhk 5 python pickle torch pytorch torchtext
我正在处理文本并使用torchtext.data.Dataset. 创建数据集需要相当长的时间。对于只是运行程序,这仍然是可以接受的。但我想调试神经网络的火炬代码。如果 Python 在调试模式下启动,数据集创建大约需要 20 分钟 (!!)。这只是为了获得一个工作环境,我可以在其中调试神经网络代码。
我想保存数据集,例如使用泡菜。此示例代码取自此处,但我删除了此示例不需要的所有内容:
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)
Run Code Online (Sandbox Code Playgroud)
要运行代码,您需要 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
Run Code Online (Sandbox Code Playgroud)
fastai 的样品经常使用莳萝代替泡菜。但这对我也不起作用。
你可以用莳萝代替泡菜。它对我有用。\n你可以保存一个 torchtext 字段,例如
\n\nTEXT = data.Field(sequential=True, tokenize=tokenizer, lower=True,fix_length=200,batch_first=True)\nwith open("model/TEXT.Field","wb")as f:\n dill.dump(TEXT,f)\nRun Code Online (Sandbox Code Playgroud)\n\n并加载一个字段,例如
\n\nwith open("model/TEXT.Field","rb")as f:\n TEXT=dill.load(f)\nRun Code Online (Sandbox Code Playgroud)\n\n官方代码支持正在开发\xef\xbc\x8c,您可以关注https://github.com/pytorch/text/issues/451和https://github.com/pytorch/text/issues/73。
\n| 归档时间: |
|
| 查看次数: |
4730 次 |
| 最近记录: |