深度学习基础–多层感知机(MLP)
最近在阅读一本书籍–Dive-into-DL-Pytorch(动手学深度学习),链接:https://github.com/newmonkey/Dive-into-DL-PyTorch,自身觉得受益匪浅,在此记录下自己的学习历程。
本篇主要记录关于多层感知机(multilayer perceptron, MLP)的知识。多层感知机是在单层神经网络的基础上引入一个或多个隐藏层。
以单层神经网路SOFTMAX回归为例子。给定一个小批量样本X,假设输出层的softmax回归的权重和偏差参数分别为Wo和bo,输出层的输出记为O,则softmax回归的计算表达式为:
在上述的SOFTMAX回归中,我们在输入层与输出层间引入一个隐藏层,形成多层感知机。假设隐藏层的输出记为H,隐藏层的权重参数和偏差参数分别为Wh和bh,∅表示激活函数。则这个多层感知机的计算表达式为:
上述式子联立可得:
利用pytorch实现上述的多层感知机:
0 引入相关的包
import torch
from torch import nn
from torch.nn import init
import numpy as np
import torchvision
import torchvision.transforms as transforms
1 获取数据集
采用的是Fashion-MNIST数据集。def load_data_fashion_mnist(batch_size, root='~/Datasets/FashionMNIST'):
transform = transforms.ToTensor()
mnist_train = torchvision.datasets.FashionMNIST(root=root, train=True, download=True, transform=transform)
mnist_test = torchvision.datasets.FashionMNIST(root=root, train=False, download=True, transform=transform)
if sys.platform.startswith('win'):
num_workers = 0 # 0表示不用额外的进