自然语言处理 基于预训练模型的方法 代码解读 [ section 4.1.6, page 77 ]
自定义神经网络模型的例子:一个简单的多层感知器模型MLP
文件名为 mlp.py
# Defined in Section 4.1.6
# Page 77
# 自定义神经网络模型的第一个例子(The first example of custom neural network model)
# 导入torch和torch.nn
# pytorch将常用的神经网络模型封装到了torch.nn包内,从而可以方便灵活地加以调用
# Sigmoid, Softmax, ReLU, tanh等各种激活函数包含在torch.nn.functional中
# activation function 可以实现对输入按元素(每个值value)进行非线性运算(即pointwise,elementwise逐点的计算)
import torch
from torch import nn
from torch.nn import functional as F
# The class of Multi-Layer Perceptron 多层感知机的类
# 从torch.nn中的Module类继承/派生/扩展/extend 一个子类 sub-class
# 并实现构造函数和forward前向传播函数
class MLP(nn.Module):
def __init__(self, input_dim, hidden_dim, num_class):
"""
constructor构造函数定义了模型所需的成员对象(属性)
比如构成该模型的各层,并对其中的参数进行初始化 initialize
self 指的是用构造器创建的实例对象本身
:param input_dim: 输入的每个