问题标签 [opennmt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - 问题:将 TPU 与 OpenNMT-tf 一起使用
我正在尝试将免费的 Google Colab TPU 与OpenNMT-tf一起使用,它是建立在 Tensorflow 之上的用于神经机器翻译和神经序列学习的开源生态系统。TPU 还没有实现,所以我正在尝试这样做。我创建了一个谷歌云存储桶,它能够看到它,并在存储桶中创建一个对象。但是训练没有跟进,它只是停止了。我在终端上收到这些消息,也许有人可以对此有所了解:
2020-07-20 08:09:30.121886: I tensorflow/core/platform/cloud/google_auth_provider.cc:180] 由于没有从文件中检索到令牌,因此尝试使用空的不记名令牌,并且跳过了 GCE 元数据检查。
整个过程可以很容易地复制,完整的输出也可以在这个谷歌 Colab笔记本中获得
pytorch - 训练 opennmt 时出错 - 找不到 caffe2_detectron_ops.dll
我有火炬 1.6 和 python 3.8。在训练 OpenNMT 时,它会抛出以下错误 -
OSError: [WinError 126] 找不到指定的模块。加载“C:\Users\Girish\AppData\Local\Programs\Python\Python38\lib\sitepackages\torch\lib\caffe2_detectron_ops.dll”或其依赖项之一时出错。
我检查了文件夹,文件在那里。我试过卸载torch并重新安装它,但没有帮助。
任何帮助将不胜感激。谢谢
python - openNMT 翻译命令产生垃圾结果
我正在运行以下命令
文件“pred.txt”中的结果与为翻译给出的源句完全不同
语料库大小为 3000 个平行句子。预处理命令是 -
培训在演示模型上
python - 在 Anaconda 虚拟环境中使用 OpenNMT-tf 2.10 和 tensorflow 2.2 时出现 Cudnn 问题
我正在尝试在 GPU GeForce RTX 2060 8GB 内存上训练 OpenNMT-tf 变压器模型。您可以在此处查看步骤。
我创建了 Anaconda 虚拟环境并使用以下推荐安装了 tensorflow-gpu。
运行上述命令后,conda env 将处理所有事情,并将在 env 中安装 cuda 10.1 和 cudnn 7.6.5。然后我使用以下命令安装了与 tf 2.2 gpu 兼容的 openNMT-tf 2.10。
上述命令将在 conda 环境中安装 openNMT。
当我尝试运行 OpenNMT-tf 文档中“Quicstart”页面上可用的命令时,它在制作词汇时识别了 GPU。但是当我开始训练变压器模型时,它会出现以下 cudnn 错误。
如果有人可以在这里指导,那就太好了。
附言。我不认为这是一个版本问题,因为我验证了 openNMT-tf 2.10 需要 tensorflow 2.2 并且安装了 tensorflow-gpu 2.2,anaconda 自己安装了 cuda 10.1 和 cudnn 7.6.5(默认处理 GPU 依赖项)。
python-3.x - OpenNMT 玩具示例(Python3.9)的问题
我最近安装了 OpenNMT,但在浏览玩具示例时出现以下错误。
我有 macOS Big Sur 11.2.1 我安装了 python2.7 和 python3.9。
pip install --upgrade OpenNMT-py==2.0.0rc1
wget https://s3.amazonaws.com/opennmt-trainingdata/toy-ende.tar.gz
tar xf toy-ende.tar.gz
cd toy_ende
python-3.x - opennmt 找不到 GPU
我可以看到 pytorch 可以找到 GPU 资源。
但是,OpenNMT 没有找到 GPU 资源。这里发生了什么?我正在使用来自https://github.com/OpenNMT/OpenNMT-py/tree/1.2.0的 OpenNMT
google-colaboratory - Google Colab 中的 SentencePiece
我想在我正在训练 OpenNMT 模型的 Google Colab 项目中使用来自https://github.com/google/sentencepiece的句子。我对如何在 Google Colab 中设置句子二进制文件有点困惑。我需要用cmake构建吗?
当我尝试安装pip install sentencepiece
并尝试在脚本的“转换”中包含句子时,我收到以下错误
运行此脚本后(与 OpenNMT 翻译教程匹配)
!onmt_build_vocab -config en-sp.yaml -n_sample -1
我得到:
以下是我的脚本的编写方式。我不确定 not a string 来自什么。
编辑:所以我继续用谷歌搜索这个问题,发现了一个谷歌 colab 项目,它在这里使用 cmake 构建句子https://colab.research.google.com/github/mymusise/gpt2-quickly/blob/main/examples/gpt2_quickly .ipynb#scrollTo=dDAup5dxDXZW。但是,即使在使用 cmake 构建之后,我仍然遇到这个问题。
python - (OpenNMT) 西班牙语到英语模型改进
我目前正在尝试使用 yaml 脚本训练西班牙语到英语的模型。我的数据集非常大,但对于初学者来说,我试图让一个 10,000 个训练集和 1000-2000 个验证集首先运行良好。然而,在尝试了几天之后,我认为我需要帮助,因为我训练的越多,我的验证准确度就会下降,而我的训练准确度会上升。
我的数据来自 ModelFront 的 ES-EN 冠状病毒评论数据集,可在此处找到https://console.modelfront.com/#/evaluations/5e86e34597c1790017d4050a。我发现平行句子非常准确。我正在使用数据集中的前 10,000 条平行线,跳过包含任何数字的句子。然后我将接下来的 1000 或 2000 用于我的验证集和接下来的 1000 用于我的测试集,只包含没有数字的句子。查看数据时,它看起来很干净,并且句子在各自的行中相互排列。
然后我使用句子来构建词汇模型。使用 spm_train 命令,我输入我的英语和西班牙语训练集,在参数中用逗号分隔,并输出一个 esen.model。另外,我选择使用 unigrams 和 16000 的词汇量
至于我的 yaml 配置文件:这是我指定的
我的源和目标训练数据(我为英语和西班牙语提取的 10,000 个在转换 [] 中带有“sentencepiece”)
我的源和目标验证数据(英语和西班牙语为 2,000 个,转换中带有“sentencepiece”[])
我的 Src 和目标词汇模型的词汇模型 esen.model
编码器:rnn 解码器:rnn 类型:LSTM 层数:2 bidir:true
优化:亚当学习率:0.001
训练步数:5000 有效步数:1000
其他记录数据。
使用 onmt_translate 开始训练后,我的训练准确度从 7.65 开始,到 5000 步结束时进入低 70 秒。但是,在那个时间范围内,我的验证准确度从 24 变为 19。
然后我使用 bleu 对我的测试集进行评分,其 BP 约为 0.67。
我注意到,在以 1 的学习率尝试 sgd 之后,我的验证准确率不断提高,但最终困惑度开始回升。
我想知道我是否做错了什么会导致我的验证准确度下降而训练准确度上升?我只是需要训练更多吗?任何人都可以推荐其他任何东西来改进这个模型吗?我已经盯着它看了几天。任何事情都值得赞赏。谢谢。
!spm_train --input=data/spanish_train,data/english_train --model_prefix=data/esen --character_coverage=1 --vocab_size=16000 --model_type=unigram
onmt_build_vocab -config en-sp.yaml -n_sample -1
onmt_train -config en-sp.yaml
python - Tensorflow“用于语言理解的变压器模型”与另一个数据集?
我一直在阅读官方指南 ( https://www.tensorflow.org/text/tutorials/transformer ) 以尝试在 Tensorflow 中重新创建 Vanilla Transformer。我注意到使用的数据集非常具体,在指南的最后,它说尝试使用不同的数据集。
但那是我被困了很长时间的地方!我正在尝试在此处使用 WMT14 数据集(如原始论文 Vaswani 等人中使用的那样):https ://www.tensorflow.org/datasets/catalog/wmt14_translate#wmt14_translatede-en 。
我也尝试过 Spacy 的 Multi30k 和 IWSLT 数据集,但是有没有关于如何将数据集拟合到模型要求的指南?具体来说,将其标记化。官方 TF 指南使用预训练的标记器,它特定于给定的 PR-EN 数据集。
我想知道,如何使用 TF (bert) 标记器来标记 Spacy 数据集?我有 PyTorch 的代码,不幸的是我不知道如何将它用于 Tensorflow。任何帮助将不胜感激!
python - 错误:找不到满足要求 ctranslate2 的版本
我正在学习使用 docker,但在 docker 映像中安装 Ctransalte2 时遇到问题。当我运行 docker build 时,出现上述错误。我正在使用 python:3.8.12 基本图像,我怀疑这是问题所在。我知道 Ctranslate2 只能在 Linux/Mac 上运行。我是否需要在基本映像中指定操作系统?
Dockerfile: