動手學深度學習 影象分類例項-多層感知機(三) 多層感知機的簡潔實現
阿新 • • 發佈:2021-02-15
技術標籤:深度學習深度學習神經網路機器學習人工智慧python
動手學深度學習 影象分類例項-多層感知機(三) 多層感知機的簡潔實現
動手學深度學習 多層感知機系列:
- 動手學深度學習 影象分類例項-多層感知機(一) 核心概念與啟用函式的作用
- 動手學深度學習 影象分類例項-多層感知機(二) 多層感知機的從零開始實現
- 動手學深度學習 影象分類例項-多層感知機(三) 多層感知機的簡潔實現
多層感知機系列文章的連結已
放至文章開頭
關於詳細程式碼可至文末領取
文章目錄
前言
本文介紹多層感知機的簡潔實現 利用 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實現已完成