Reference:https://github.com/649453932/Bert-Chinese-Text-Classification-Pytorch
模型代码学习-CLS文本分类-Bert-Chinese-Text-Classification-Pytorch代码学习-模型结构
baseDir: Bert-Chinese-Text-Classification-Pytorch/models/
目录
./models/bert.py学习
这里的文本分类模型结构比较简单,基本上就是一个bert(可以理解为encoder?)加一个fc layer做分类器。一些额外补充内容的说明如下:
- 这里class_list采用了读文件的统计方法,只要把各个label写在文件里一行一行的,这里就能自动strip(去掉首位空格)进行构建class list
- 模型训练结果后缀是.ckpt,后续.ckpt如何使用?->在test中应该多了一行的引用过程
- device采用torch.cuda.is_availalbe()的判断方法,但是在后续可能需要设置到是cuda几,或者说第几个gpu上
- self.pad_size表明每句话处理成的长度,这时候要依据所需要目标处理的数据集而定,可以先统计目标数据集的文本长度分布,然后选一个几乎最长的,或者说再进行一些其他选择调整(或许一般来说,对于同一个数据集,提供的文本长度应该是差不多的?)
- self.tokenizer采用BertTokenizer.from_pretrained()的方式,这个是指使用预训练的?怎么理解这里预训练和常说的fine-tune的关系?->fine-tune用简单的理解来说就是把这个模型用在自己的数据集上,然后来更新pretrain模型的参数
- hidden_size = 768 这个是bert的一些惯用设置吗,因为在不止一段代码中看到了768这个数值,或许bert输出的最后一层是768dim的?->一般来说如果用到pretrain的话,从模型结构定死来说一般最后一层就是x×768,这样基本就可以说是不能变的。
- self.bert = BertModel.from_pretrained(config.bert_path) for param in self.

最低0.47元/天 解锁文章
4031





