文本蕴涵模型测试过程

最终改好的调试文本蕴涵模型步骤:

1.安装环境,需要使用gpu环境,服务器上的cuda版本是10,需要安装相应的tensorflow版本

2.运行data_reader.py文件,生成cnli_vocab.txt

3.在model下运行run_embeddingcnli.sh文件,生成cnli_embedding.npy

4.运行train.py文件。

调试过程中出现的主要问题汇总如下:

1.配置环境,安装python版本3.6.5,anaconda版本Anaconda3-5.2.0。然后activate tensorflow,在tensorflow环境下又安装了tensorflow1.5,但是运行中出现错误,如下图所示

由于tensorflow版本不同,导致参数名称冲突,解决办法是:卸载当前tensorflow1.5,重新安装tensorflow1.4

但是使用cpu跑太慢,因此在服务器上重新搭建环境。

2.接下来在jupyter上运行train.py文件,出现问题提示:缺少D:\\12.txt,解决办法:创建该日志文件

3.run train.py ,出现问题:缺少mergetrain.txt,解决办法:这个文件实际是data/cnli/cnli_train_1.0_seg.txt,在config.py文件里(第21行)改一下名字即可,如下图所示

3.运行data_reader.py文件,生成nlpcc2016_vocab.txt,日期应该是刚刚创建的,那么这个文件就是cnli_vocab.txt

他们的区别是cnli是做蕴涵任务,而nlpcc是做问答任务

4.由于nlpcc2016_embedding.npy文件是通过运行run_embeddingcnli.sh之后自动生成的,因此要在电脑上安装git工具,运行sh文件,把run_embeddingcnli.sh文件放到model下,和data处于同一级目录下,如下图所示:

5.在运行过程中,发现编码错误'utf-8' codec can't decode byte 0x92 in position 3: invalid start byte,用emeditor打开综合词向量文件发现存在无效字符,因此把无效字符删除,再继续运行run_embeddingcnli.sh文件,生成的cnli_embedding.npy文件就是nlpcc2016_embedding.npy文件

6.继续运行train.py文件,发现错误如下图所示

因此,需要打开train.py文件,把pred赋值个0,然后再进行测试,即可成功。

虽然可以运行,但是还是出现一个问题,准确率都是0,如下图所示:

发现是data_reader.py文件中的load_data函数里面的label字典的参数错误了,应该改成如下图所示:

之后可以运行,但是准确率只有38,如下图所示,

然后师兄说问题有两个:

(1)npy词向量不对应,是代码中的问题(2)词典不对应

改好之后,再运行是train的准确率是58,然后会慢慢增加

用文本蕴涵模型测试百度的数据发现问题:

train的准确率是0,目前发现是因为 l 在 label词典中找不到,需要改一下格式:

把{'neutral':0,'entailment':1,'contradiction':2} 改成 {'  neutral':0,'  entailment':1,'  contradiction':2}

在测试的时候可以打印一下p,h,l,然后看看X[:10]中有没有值

在运行train.py文件时遇到错误:InvalidArgumentError (see above for traceback): indices[0,10] = 47392 is not in [0, 45100)

是因为换了数据,因此词典和npy文件都要重新生成

遇到错误Assign requires shapes of both tensors to match. lhs shape= [316297,300] rhs,可以把日志文件删除,并把model_saved_2016删除,是通过参考微博https://blog.csdn.net/Warship_/article/details/103817430

8.服务器gpu被占用,结果报错,错误如下图所示:

因此,使用命令nvidia-smi 查看当前服务器gpu使用情况,如下图:

具体的命令解读参考博客https://blog.csdn.net/sallyxyl1993/article/details/62220424

因此,可以使用gpu0进行跑程序,参考博客https://blog.csdn.net/guvcolie/article/details/77164230

在程序的最前面加入两行即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值