当前位置: 首页 > news >正文

运行谷歌开源BERT程序时遇到的bug修改记录

运行谷歌开源BERT程序时遇到的bug修改记录

一、没有对应的模块

采用anaconda的python3.8做为解释器,其实以及包含基本的第三方库了,但是在运行run_classifier.py文件时,仍然报错has no attribute XXX
解决方式:

# import tensorflow as tf
import tensorflow.compat.v1 as tf

二、传入参数错误

在将谷歌开源的github当中提示的参数配置到Edit Configuration当中的Parameters时,例如

  --task_name=MRPC \
  --do_train=true \
  --do_eval=true \
  --data_dir=$GLUE_DIR/MRPC \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
  --max_seq_length=128 \
  --train_batch_size=32 \
  --learning_rate=2e-5 \
  --num_train_epochs=3.0 \
  --output_dir=/tmp/mrpc_output/

提示:Non-boolean argument to boolean flag', 'true\\
解决方式: 去除掉 \
在这里插入图片描述

--task_name=MRPC # MRPC
--do_train=true # 是否进行训练
--do_eval=true # 是否进行验证
--data_dir=../GLUE/glue_data/MRPC 
--vocab_file=../GLUE/BERT_BASE_DIR/uncased_L-12_H-768_A-12/vocab.txt # 语料标表
--bert_config_file=../GLUE/BERT_BASE_DIR/uncased_L-12_H-768_A-12/bert_config.json # 预训练配置文件
--init_checkpoint=../GLUE/BERT_BASE_DIR/uncased_L-12_H-768_A-12/bert_model.ckpt # 微调
--max_seq_length=128 # 每句话的最长长度
--train_batch_size=6 # 调小
--learning_rate=2e-5 # 学习率
--num_train_epochs=3.0 # 学习用1-3
--output_dir=../GLUE/output # 保存训练模型的位置

三、提示‘utf-8’编码错误

在这里插入图片描述
将第二步的配置修改好后,就不会报错了。第二步的配置一定不能复制官网原文,要结合自身的文件结构修改。

四、提示没有contrib

提示:module 'tensorflow.compat.v1' has no attribute 'contrib'

我们都知道这是因为tensorflow版本的问题,所以最好的解决方法是去tensorflow的官网去查看对应的函数改版前后的变化。
tensorflow官网
https://tensorflow.google.cn/guide/migrate/tpu_estimator
在这里插入图片描述
在官网中给的案例看来,
原本的tf.contrib.tpu已经转变成tf.estimator.tpu
原本的tf.contrib.data已经转变为tf.data.experimental.map_and_batch
原本的tf.contrib.layers.layer_norm已经转变为tf.keras.layers.LayerNormalization()
但此时发现一件裂开的事,tf.contrib.layers.layer_norm方法和tf.keras.layers.LayerNormalization()方法当中的参数完全不一样,不进行简单的替换。

综合考虑之后,决定卸载原来的tensorflow,降至低版本

卸载

pip uninstall tensorflow

在这里插入图片描述
重新下载低版本的tensorflow
https://github.com/tensorflow/tensorflow/tags?after=v2.2.0-rc0
在这里插入图片描述
在这里插入图片描述
此时又发现一件裂开的事:tensorflow1.X的版本最高只支持Python3.7,因此我需要装Python3.7。。。

经过一顿操作,最终选择了1.15.0版本的tensorflow。

pip install D:\Anaconda\conda3.7\Scripts\tensorflow-1.15.3-cp37-cp37m-win_amd64.whl

在这里插入图片描述
将Pycharm中的解释器进行更换。
在这里插入图片描述
终于可以运行了!!!
在这里插入图片描述
CPU已经跑满了
在这里插入图片描述

相关文章:

  • 算法学习入门
  • 【SSM】spring核心思想——IOC和DI
  • 自由的程序员应该学会自由地控制空间-----动态内存管理
  • [架构之路-51]:架构师 - 用系统化、结构化思维解决复杂难搞的软件故障问题 - 马克思主义哲学在软件系统中的应用
  • 【面试题】JavaScript数组切片方法有哪些?
  • 【PyTorch深度学习项目实战100例】—— 基于CNN卷积神经网络实现中文手写汉字识别 | 第60例
  • HarmonyOS系统中内核实现UART串口通信方法
  • Selenium4.0+Python三种元素等待方式介绍 及 元素等待封装
  • django梳理
  • 嵌入式软件调试的发展历程
  • PT_连续型随机变量/分布函数/概率密度
  • Python告别pip手动安装模块,实现全自动安装第三方库,彻底解放你的双手
  • 文件目录操作——Linux命令核心
  • Taichi 加速 Python 中图像处理
  • Vue--》MVVM模型在Vue中的使用
  • Create React App 使用
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • IOS评论框不贴底(ios12新bug)
  • JavaScript函数式编程(一)
  • Java的Interrupt与线程中断
  • k个最大的数及变种小结
  • linux学习笔记
  • python docx文档转html页面
  • Redash本地开发环境搭建
  • storm drpc实例
  • Vim Clutch | 面向脚踏板编程……
  • yii2权限控制rbac之rule详细讲解
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 程序员最讨厌的9句话,你可有补充?
  • 大快搜索数据爬虫技术实例安装教学篇
  • 力扣(LeetCode)21
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 新手搭建网站的主要流程
  • 从如何停掉 Promise 链说起
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​MySQL主从复制一致性检测
  • ​渐进式Web应用PWA的未来
  • ​批处理文件中的errorlevel用法
  • # Panda3d 碰撞检测系统介绍
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #考研#计算机文化知识1(局域网及网络互联)
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $jQuery 重写Alert样式方法
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (poj1.2.1)1970(筛选法模拟)
  • (独孤九剑)--文件系统
  • (理论篇)httpmoudle和httphandler一览
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .dwp和.webpart的区别
  • .equals()到底是什么意思?
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net Signalr 使用笔记