SpERT源码阅读 #on-working#

本文介绍了SpERT模型的训练过程,从程序入口开始,详细阐述了数据读取、模型构建、模型加载、优化器与scheduler设定、损失函数定义、模型训练及保存。重点解析了SpERTTrainer类,包括其各个核心函数的功能,如读数据、建模、训练与保存。同时,提到了NLP中的mini-batch和mask技术的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目重要文件的目录树如下:

spert
│  args.py           # 各种参数的设置
│  config_reader.py  # 读取并处理config文件
│  spert.py          # 程序入口
│  __init__.py       # 空文件,用于构成package
├─bert-base-chinese
│      bert_config.json
│      config.json
│      pytorch_model.bin
│      vocab.txt
├─configs            # config文件
│      example_eval.conf
│      example_predict.conf
│      example_train.conf
├─data               # 数据集(已处理好格式)
│  ├─datasets
│  │  ├─ade
│  │  ├─conll04
│  │  └─scierc
│  ├─log
│  └─save
└─spert
      entities.py
      evaluator.py
      input_reader.py     # 读取输入,定义BaseInputReader和JsonInputReader类
      loss.py             # 定义SpERTLoss类,类函数compute()计算模型loss
      models.py           # 定义SpERT类(继承transformers库中的BertPreTrainedModel类)
      opt.py              # optional
      prediction.py
      sampling.py         # 生成正负样本
      spert_trainer.py    # 定义SpERTTrainer类(继承BaseTrainer类)
      trainer.py          # 定义BaseTrainer类
      util.py             # 各种小函数
      __init__.py

1.程序入口

训练模型使用如下命令:

python ./spert.py train --config configs/example_train.conf

故程序的入口是spert.py

if __name__ == '__main__':
    arg_parser = argparse.ArgumentParser(add_help=False)
    arg_
ipchains 和 iptables 在语法上的主要的差异,注意如下∶1. 在 ipchains 中,诸如 input 链,是使用小写的 chains 名,在 iptables 中,要改用大写 INPUT。2. 在 iptables 中,要指定规则是欲作用在那一个规则表上(使用 -t 来指定,如 -t nat),若不指定,则预设是作用在 filter 这个表。3. 在 ipchains 中, -i 是指介面(interface),但在 iptables 中,-i 则是指进入的方向,且多了 -o,代表出去的方向。4. 在 iptables 中,来源 port 要使用关键字 --sport 或 --source-port5. 在 iptables 中,目的 port 要使用关键字 --dport 或 --destination-port6. 在 iptables 中,"丢弃" 的处置动作,不再使用 DENY 这个 target,改用 DROP。7. 在 ipchains 的记录档功能 -l,已改为目标 -j LOG,并可指定记录档的标题。8. 在 ipchains 中的旗标 -y,在 iptables 中可用 --syn 或 --tcp-flag SYN,ACK,FIN SYN9. 在 iptables 中,imcp messages 型态,要加上关键字 --icmp-type,如∶iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPTiptables 使用时的样板在设定 iptables 的封包过滤规则时,有几个样板的动作,若先熟悉它们,往后就可自行套用,依此类推,很快地,您就可以进入这个天地之中。观察目前的设定作法如下∶iptables -L -niptablse -t nat -L -n定义变数FW_IP="163.26.197.8"打开核心 forward 功能作法如下∶###-----------------------------------------------------#### 打开 forward 功能###-----------------------------------------------------###echo "1" > /proc/sys/net/ipv4/ip_forward清除所有的规则一开始要先清除所有的规则,重新开始,以免旧有的规则影响新的设定。作法如下∶###-----------------------------------------------------#### 清除先前的设定###-----------------------------------------------------#### 清除预设表 filter 中,所有规则链中的规则iptables -F# 清除预设表 filter 中,使用者自订链中的规则iptables -X# 清除mangle表中,所有规则链中的规则iptables -F -t mangle# 清除mangle表中,使用者自订链中的规则iptables -t mangle -X# 清除nat表中,所有规则链中的规则iptables -F -t nat# 清除nat表中,使用者自订链中的规则iptables -t nat -X
最新发布
03-13
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值