使用翻译模型训练自定义数据集

blu*_*sky 15 translate tensorflow

从开箱即用运行模型会在数据目录中生成这些文件:

ls
dev-v2.tgz                            newstest2013.en
giga-fren.release2.fixed.en           newstest2013.en.ids40000
giga-fren.release2.fixed.en.gz        newstest2013.fr
giga-fren.release2.fixed.en.ids40000  newstest2013.fr.ids40000
giga-fren.release2.fixed.fr           training-giga-fren.tar
giga-fren.release2.fixed.fr.gz        vocab40000.from
giga-fren.release2.fixed.fr.ids40000  vocab40000.to
Run Code Online (Sandbox Code Playgroud)

阅读translate.py的src:

https://github.com/tensorflow/models/blob/master/tutorials/rnn/translate/translate.py

tf.app.flags.DEFINE_string("from_train_data", None, "Training data.")
tf.app.flags.DEFINE_string("to_train_data", None, "Training data.")
Run Code Online (Sandbox Code Playgroud)

为了利用我自己的训练数据,我创建了我的从火车数据到火车数据,并将我自己的训练数据添加到每个这些目录中,训练数据包含在文件mydata.from&mydata.to中

my-to-train-data contains mydata.from
my-from-train-data contains mydata.to
Run Code Online (Sandbox Code Playgroud)

我找不到关于使用自己的训练数据或应该采用什么格式的文档,所以我从translate.py src和开箱即用的执行翻译模型时创建的数据目录中推断出这一点.

mydata.from的内容:

 Is this a question
Run Code Online (Sandbox Code Playgroud)

mydata.to的内容:

 Yes!
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下方法训练模型:

python translate.py --from_train_data my-from-train-data --to_train_data my-to-train-data
Run Code Online (Sandbox Code Playgroud)

这将返回错误:

tensorflow.python.framework.errors_impl.NotFoundError: my-from-train-data.ids40000
Run Code Online (Sandbox Code Playgroud)

出现我需要创建文件my-from-train-data.ids40000,它的内容应该是什么?是否有使用自定义数据训练此模型的示例?

rme*_*ens 3

蓝天

好问题,使用自己的数据训练模型比使用标准数据有趣得多。您可以在终端中输入的内容示例如下:

python translate.py --from_train_data mydatadir/to_translate.in --to_train_data mydatadir/to_translate.out --from_dev_data mydatadir/test_to_translate.in --to_dev_data mydatadir/test_to_translate.out --train_dir train_dir_model --data_dir mydatadir

您的示例中的问题是您没有指向文件,而是指向文件夹。from_train_data 应始终指向纯文本文件,其行应与 to_train_data 文件中的行对齐。

另外:一旦您使用合理的数据(多于一行;))运行此脚本,translate.py 将生成您的 ids(如果未设置 from_vocab_size 和 to_vocab_size 则为 40.000)。需要了解的重要一点是,该文件是在 data_dir 指定的文件夹中创建的...如果您没有指定,这意味着它们是在 /tmp 中生成的(我更喜欢它们与我的数据位于同一位置)。

希望这可以帮助!