Bert模型(Google官方)问题汇总

首先声明:本人是一个刚接触NLP和Python的小白,本文也只是为了记录自己在学习Bert模型上面遇到的一些问题,有说的不对的地方,请大家指正,我都会虚心接受。

本人由于是小白,所以是跟着视频学习跑的bert模型官方示例,视频链接放这里,老师讲的很好,推荐给大家
https://www.bilibili.com/video/BV1NJ411o7u3?p=1

我跑的是谷歌在github上面的官方测试项目,跑的是第一个,具体的网址我放在这里(我跑的是第一个模型,具体任务是判断两个句子是否表达的是同样的意思,谷歌官方还有很多其他任务模型,大家可以尝试)
https://github.com/google-research/bert

如果模型代码和数据集下不下来,可以私信我发给你,上面的视频课程的评论区也有下载方式

环境配置

本人环境:
Anaconda3-4.3.0(python3.6.0)
pycharm:pycharm-community-2017.2.7
tensorflow:1.13.1
CUDA:10
cudnn:v7.4.1.5

环境和各个部分的版本号非常重要!一定要相互对应!!
如果对应不上会出现各种问题!!!
本人在这里浪费了很多时间,大家一定要重视!!!

说明几点:
1、anaconda中集成了python,所以安装了anaconda后就不要再安装python了!安装了相应版本的anaconda,就会有相对应的python版本

2、建议不要下载最新版本,如果版本问题导致模型出现error,实在解决不了可以考虑按照我的版本去下载

3、tensorflow建议使用tensorflow1.XX,而不要使用tensorflow2.XX
因为模型是几年前的了,当时用的是tensorflow1
tensorflow2的语法在有的地方和tensorflow1不同,可能会报错。

4、CUDA和cudnn的版本要对应,这两个家伙和python还有tensorflow的版本也要对应

导入模型和参数设置

导入模型没什么好说的,在pycharm里新建一个工程,把代码和数据集丢进去就行。

这里有一个小问题,是我遇到了的:
在这里插入图片描述

如果这里的 modeling optimization tokenization三个包下面有红色波浪线,解决办法是
在这里插入图片描述
选择Sources Root 就可以了
参数设置(重点)
一定不要使用官方的参数,原因是路径不合适,会找不到文件导致报错。
可以使用我的参数:

在这里插入图片描述

然后跑run_classifier.py,模型就开始跑了

运行结果

CPU跑出来的:
在这里插入图片描述

常见问题

1、选择使用CPU还是GPU

建议在代码中自行加入如下代码

os.environ["CUDA_VISIBLE_DEVICES"] = ""

其中" "填写GPU的编号,这个可以在任务管理器里面查到,如果填写集显的编号,就会使用CPU。使用GPU的编号,就会适用相应的GPU

2、关于使用GPU跑模型
如果报错OOM,就是爆显存了,可以适当将一下参数调小

max_seq_length=128  # 最大序列长度
num_train_epochs=3.0  # 训练轮次
train_batch_size=8  # 使用小批量梯度下降优化时,每次处理8个样本

下面是用的1050ti 4G显存跑的时候,显存的占用率

可以看到几乎在爆显存的边缘,而且以上三个参数我都调到最低了,还是会在运行过程中爆掉。

这个是什么原因希望有大佬可以解答一下,是bert太厉害我显卡太垃圾吗?

--------------------------2021.10.25 更新------------------------------------------------
果然是自己显卡的4g显存太小了,跑几步就爆显存了。
解决方法1:换显卡
解决方法2:用CPU跑,具体步骤就是加一条语句os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘’,
''中填显卡编号(我的独显是0,集显是1,选择集显就是用CPU跑)
解决方法3:限制显存使用上限(感谢我的导师告诉我这个办法)
os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘0’
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5) #这里是用50%的显存
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

通过方法3,成功开始用GPU跑模型了。
持续更新中…

猜你喜欢

转载自blog.csdn.net/weixin_44283836/article/details/120888360
今日推荐