Skip to content

Latest commit

 

History

History

第二章——BERT源码解读与应用实例

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README

BERT开源框架地址,最好读下README,以下是预训练好的BERT模型,这里用到两个

image-20240517172005425

点击即可下载,里面内容如下

1609826152438

1609826160982

json:相关的参数

vocab:语料库

其它:使用时的是加载文件,如训练好的权重等

1609826290795

下载一个数据集,使用脚本命令下载,可能需要翻墙,可以访问我的云盘进行下载。链接:https://pan.baidu.com/s/18vPGelYCXGqp5OCWZWz36A 提取码:de0f。这里只用到MRPC

MRPC

内容如下:

1609827571649

train.csv:

1609827493014

二分类任务:判断两句话是否说的是同一意思

Quality:是否相同,相同为1

test.csv

1609827666717

没有了Quality,需要进行预测

download BERT

把bert的code全部下载下来,并解压到指定目录

1609827887131

创建环境

settings一个虚拟环境,我使用的是pycharm

1610378141133

我默认你是下载了某个IDE,至少是懂python的,Show All

1610378199764

点击加号

1610378235115

添加一个conda或者普通的python都可以,因为conda是专门做数据的,所以我选了conda,其实没什么区别

1610378282775

点击OK即可。

1610378368510

输入如下命令,进行安装

# python3.7,我的是window
pip install tensorflow==1.13.2 -i https://pypi.douban.com/simple

pip install numpy==1.16 -i https://pypi.douban.com/simple

参数

1609999902323

注意:是run_classifier.py文件

1609999954700

-task_name=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=8
-learning_rate=2e-5
--num_train_epochs=3.0
-output_dir=../GLUE/output/

task_name:运行的模块,在main里指定了名字对应的类

do_train:是否训练

do_eval:是否验证

data_dir:数据地址

vocab_file:词库表

bert_config_file:bert参数

init_checkpoint:初始化参数

max_seq_length:最长字符限制

train_batch_size:训练次数

learning_rate:学习率

num_train_epochs:循环训练次数

output_dir:输出路径

配置完成后,run该文件即可

1610000183063

Google原版的

1610000131364

报错及解决办法

class AdamWeightDecayOptimizer(tf.optimizers.Optimizer): AttributeError: module 'tensorflow' has no attribute 'optimizers'

如下内容

tf.optimizers.Optimizer改为tf.keras.optimizers.Optimizer

super(AdamWeightDecayOptimizer, self).init(False, name) TypeError: __ini

super(AdamWeightDecayOptimizer, self).__init__(False, name)
    改成
super(AdamWeightDecayOptimizer, self).__init__()

tensorflow/core/framework/op_kernel.cc:1401] OP_REQUIRES failed at save_restore_v2_ops.cc:109 : Not found: Failed to create a NewWriteableFile:

路径过长,需要将整个项目移动到某盘下。要求满足:1.段路径,2.全英文

备选方案

一直起不来的,可以直接使用我改好的代码文件,链接:https://pan.baidu.com/s/18vPGelYCXGqp5OCWZWz36A 提取码:de0f

我的路径如下:

1610161459549

1610161435131

1610161444607

1610161474977

1610161499158

output是自动生成的不需要管