- 如何打造数据治理闭环?以保[2022-06-16]
- 什么样的公司需要数据治理?[2022-06-15]
- “互联网+政务服务”下的数[2022-06-14]
- 我国数据安全治理研究[2022-06-13]
- 反洗钱视角下的数据治理[2022-06-10]
- 浅谈数据质量管理[2022-06-08]
- 做数据治理前,必须了解并避[2022-06-07]
- 企业数据治理团队的十大职[2022-06-06]
- 浅谈数据质量管理[2022-06-02]
- 数据治理的三种共享范式[2022-06-01]
独家 :教你用Pytorch建立你的第一个文本分类模型!
一、为什么用PyTorch来解决文本分类问题?
-
动态的网络——训练过程中网络结构可以变化
-
多GPU分布式训练
-
具有非中性音调;
-
贬低或煽动;
-
不是基于现实;
-
利用性(乱伦、兽交、恋童癖)来获得震惊的价值,而不是寻求真正的答案。
-
Torch包是用来定义tensor和tensor上的数学运算;
-
TorchText包是PyTorch中NLP的库,包含一些预处理的脚本和常见的NLP数据集。
-
数据预处理:
-
Field:data模块的Field对象,用于描述数据集中每一列的预处理步骤;
-
LabelField:LabelField是Field对象只用于分类任务的特例。只用于设置unk_token和sequential,默认都为None。
-
Tokenize:定义分词方法,这里我们用spacy tokenizer,因为它用了新的分词算法;
-
Lower:把文本转化成小写;
-
Batch_first:输入和输出的第一个维度一般都是batch size。
fields = [(None, None), ('text',TEXT),('label', LABEL)]
-
准备输入和输出序列:
-
min_freq:当vocabulary中的词的频率低于这个参数值的时候把这个词映射为unknown token;
-
两个特殊的token,一个unknown token和padding token加到vocabulary中:Unknown token是用于处理Out Of Vocabulary words;Padding token是把输入序列变为等长的。
-
模型架构
-
init:初始化类的实例时,init函数自动被调用。因此,它也叫做构造函数。类的参数需要在构造函数中初始化,我们需要定义模型需要用到的层;
-
forward:forward函数定义了inputs前向传播的计算步骤。
-
num_embeddings:查询表中,单词的的个数;
-
embedding_dim:表示一个单词的向量维度。
-
input_size:输入向量的维度;
-
hidden_size:隐藏层节点的个数;
-
num_layers:网络中的层数;
-
batch_first:如果等于True,输入输出的tensor的形式都是(batch, seq, feature);
-
dropout:默认值是0,如果设为非0,每个LSTM层输出结果都会进到dropout层,以dropout参数值的概率删掉对应比例的神经元;
-
bidirection:如果为True, LSTM是双向的。
-
in_features:输入特征的个数;
-
out_features:隐藏层节点个数。
-
训练阶段:model.train() 设置了模型进入训练,并激活dropout层;
-
预测阶段:model.eval() 开始模型的评估阶段并关闭dropout层。