动手学深度学习 图像分类实例-多层感知机(三) 多层感知机的简洁实现
动手学深度学习 多层感知机系列:
- 动手学深度学习 图像分类实例-多层感知机(一) 核心概念与激活函数的作用
- 动手学深度学习 图像分类实例-多层感知机(二) 多层感知机的从零开始实现
- 动手学深度学习 图像分类实例-多层感知机(三) 多层感知机的简洁实现
多层感知机系列文章的链接已
放至文章开头
关于详细代码可至文末领取
前言
本文介绍多层感知机的简洁实现
利用 pytorch的特点来实现图像分类功能
以下是本篇文章正文内容
正文
使用pytorch的Sequential
来快速搭建网络
net = nn.Sequential(
d2l.FlattenLayer(),
nn.Linear(num_inputs, num_hiddens),
nn.ReLU(),
nn.Linear(num_hiddens, num_outputs)
)
全代码如下
# -*- coding: utf-8 -*-
# @Time : 2021/2/14 10:46
# @Author : JokerTong
# @File : 图像分类实例-多层感知机(三) 多层感知机的简洁实现.py
import d2lzh as d2l
from torch import nn
from torch.nn import init
from torch.optim import SGD
# 定义模型
num_inputs, num_outputs, num_hiddens = 784, 10, 256
net = nn.Sequential(
d2l.FlattenLayer(),
nn.Linear(num_inputs, num_hiddens),
nn.ReLU(),
nn.Linear(num_hiddens, num_outputs)
)
for params in net.parameters():
init.normal_(params, mean=0, std=0.01)
# 训练模型
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
loss = nn.CrossEntropyLoss()
optimizer = SGD(net.parameters(), lr=0.5)
num_epochs = 5
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, None, None, optimizer)
引用资料来源
本文内容来自吴振宇博士的Github项目
对中文版《动手学深度学习》中的代码进行整理,并用Pytorch实现
【深度学习】李沐《动手学深度学习》的PyTorch实现已完成