PytorchText语言翻译Tutorial使用

使用TORCHTEXT进行语言翻译

pip install scapy 之后发现语言包下不下来。官方语言库

手动下载 en_core_web_sm-2.2.5.tar.gz de_core_news_sm-2.2.5.tar.gz 但是github仍然下载受限

于是找到了网友分享的链接:

en_core_web_sm-2.2.5:下载 x9vc

因为最终要做的是中英文翻译,直接找了一个中文库:Chinese_models_for_SpaCy

进入存放目录 pip install en_core_web_sm-2.2.5.tar.gz 进行安装

1
2
>>>import spacy
>>>nlp = spacy.load("en_core_web_sm")

检测是否安装成功

为了方便使用本来想设置一下简写 spacy link en_core_web_sm en 但是spacy命令无法识别,可能要用管理员身份安装吧。但是因为用虚拟环境弄的,不想把路径弄坏了,就此作罢。

然而导入中文包时出错

ValueError: could not broadcast input array from shape (128) into shape (96)

回头看了一下,spacy是2.2.4版本,然后issue有人遇到了同样的问题,好像并没有很好的解决方法?

算了,用NLTK吧…

吃惊,我居然装过了,我明明都还没下数据包呢

找了一下路径,想起来有一次在另一个虚拟环境的时候差点被这个路径问题弄疯…见此文)

看来不同的虚拟环境都可以扫描到。事实证明以前踩的坑还是有用的..


过了一会德语包居然又能下了,于是还是用spacy, 先熟悉一下训练流程。

Jupyter使用

conda install jupyter notebook 安装

jupyter notebook 启动8888端口,默认居然启动的是IE,复制CMD中的地址,注意要带上token, 就可以在其他浏览器打开了

这不就是我之前在ModelArts里面用过的界面吗…原来那个也是Jupyter啊

右上角新建一个notebook

安装 texlive-xetex 便于导出为PDF

  • H:查看所有快捷键。
  • S:保存当前 Notebook 内容。
  • P:调出 Notebook 命令栏。
  • B:在当前单元格下方新建空白单元格。
  • M:将单元格格式转换为 Markdown。
  • Y:将单元格格式转换为 Code。
  • 连续按 D+D:删除当前单元格。(慎用,推荐使用 X 剪切单元格代替,因为其可以起到删除效果,且删错了还可以粘贴回来)
  • 连续按 I+I+I:强制中止内核(当某个单元格执行时间较长或卡住时,可以强行中止,中止后前序单元格状态依旧保留,非常好用。)
  • Shift + Enter:运行当前单元格内容。(当 Markdown 单元格处于编辑状态时,运行即可复原)

训练过程

按照tutorial给的步骤尝试训练

因为是手动下载的并且没有link tokenizer_language="de" 要改成对应的下载包名 en_core_web_sm de_core_news_sm

开始训练了

2000 years later….

小霸王这训练速度我裂开了….等我有钱了我也要买2080Ti


换到台式机上,先装了Anoconda再安依赖包

1
pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html

https://download.pytorch.org/whl/torch_stable.html 半天下不下来,直接去网站下了,我服了

cu102/torch-1.5.0-cp37-cp37m-win_amd64.whl

cu102/torchvision-0.6.0-cp37-cp37m-win_amd64.whl

然后

1
2
conda install cudatoolkit=10.2
pip install tensorflow tensorboard jieba torchtext

spacy-2.2.0-cp37-cp37m-win_amd64.whl 看看2.0版本能不能用中文包, 结果发现还是有问题。

还是继续用2.2.4, 试了一下可以跑,但是速度10m一个epoch, 依然很慢

检查了一下 发现 torch.cuda.is_available() == false , 原来没有用上显卡…虽然我的是几年前拉跨的960了,还是要物尽其用啊。

尝试一下有没有什么解决方法:

看了一个显卡驱动版本是388,先用驱动精灵升级到442,升级出现问题nvidia驱动和window版本不兼容,先更新系统。

我的台式机,不愧是你,还是17年更新过一次。

https://www.geforce.cn/drivers 下载英伟达官方驱动更新程序,尝试更新到445成功。

再检查torch.cuda.is_available()变为true了

再次运行,好啦,1m一个epoch,不愧是GPU啊,可以开始愉快的写模型了~

结合tensorboard

中途装了一下tensorflow由于版本问题并不能运行。

于是看到一个叫tensorboardx的工具 https://github.com/lanpa/tensorboardX