Bert模型(Google官⽅)问题汇总
⾸先声明:本⼈是⼀个刚接触NLP和Python的⼩⽩,本⽂也只是为了记录⾃⼰在学习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 就可以了
参数设置(重点)
⼀定不要使⽤官⽅的参数,原因是路径不合适,会不到⽂件导致报错。
pycharm community
可以使⽤我的参数:
然后跑run_classifier.py,模型就开始跑了
运⾏结果
CPU跑出来的:
常见问题
1、选择使⽤CPU还是GPU
建议在代码中⾃⾏加⼊如下代码
其中" "填写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:限制显存使⽤上限(感谢我的导师告诉我这个办法)
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5) #这⾥是⽤50%的显存
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
通过⽅法3,成功开始⽤GPU跑模型了。
持续更新中…

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。