基于TensorFlow实现韩英NMT时遭遇NotFoundError问题求助
解决TensorFlow NMT中"None.ko No such file or directory"错误
这个错误的核心问题是程序找不到韩语的验证集文件,结合你的配置和目录情况,具体分析和解决方法如下:
1. 验证/测试集的韩语文件缺失
你指定了--src=ko(源语言为韩语)和--dev_prefix=/tmp/nmt_data/mydata/tst2012,TensorFlow NMT会自动拼接出tst2012.ko作为韩语验证集文件路径。但从你的目录截图能看到,mydata目录下只有tst2012.en和tst2013.en,完全缺失对应的tst2012.ko和tst2013.ko文件。程序在找不到预期文件时,路径解析出现异常,就抛出了None.ko这个奇怪的错误提示。
解决方法:
把准备好的韩语验证集tst2012.ko和韩语测试集tst2013.ko放到/tmp/nmt_data/mydata/目录下,保证每个前缀(train/tst2012/tst2013)都有成对的.ko(韩语)和.en(英语)文件。
2. 手动校验文件路径是否正确
可以先通过终端命令确认文件是否存在,避免路径拼写错误:
# 检查验证集韩语文件 ls /tmp/nmt_data/mydata/tst2012.ko # 检查测试集韩语文件 ls /tmp/nmt_data/mydata/tst2013.ko
如果命令返回"No such file or directory",就说明文件确实没到位,需要补充对应的数据文件。
额外提示
NMT模型训练时,验证集和测试集都需要双语成对数据,这样才能在训练过程中评估模型的翻译效果(比如你指定的--metrics=bleu就需要双语数据来计算BLEU值)。如果你的数据准备阶段只导出了英语侧的验证/测试数据,得重新生成包含韩语的完整数据对。
内容的提问来源于stack exchange,提问作者Jiwon Kim
相关产品推荐
相关产品推荐

