1. 程式人生 > 其它 >動手學深度學習 影象分類例項-多層感知機(三) 多層感知機的簡潔實現

動手學深度學習 影象分類例項-多層感知機(三) 多層感知機的簡潔實現

技術標籤:深度學習深度學習神經網路機器學習人工智慧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實現已完成