亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現pytorch多層感知機

發布時間:2021-10-11 21:08:55 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

本篇內容主要講解“如何實現pytorch多層感知機”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何實現pytorch多層感知機”吧!

目錄
  • 初始化模型參數

  • 激活函數

  • 模型

  • 損失函數

  • 訓練

我們已經在數學上描述了多層感知機,現在讓我們嘗試自己實現一個多層感知機。為了與我們之前使用softmax回歸獲得的結果進行比較,我們將繼續使用Fashion-MNIST圖像分類數據集。

import torch
from torch import nn
from d2l import torch as d2l
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

初始化模型參數

Fashion-MNIST中的每個圖像由 28 × 28 = 784個灰度圖像值組成。所有圖像共分為10個類別。忽略像素之間的空間結構,我們可以將每個圖像視為784個輸入特征和10個類的簡單分類數據集。
首先,我們將實現一個具有單隱藏層的多層感知機,它包含256個隱藏單元。注意我們可以將這兩個量都視為超參數。通常,我們選擇2的若干次冪作為層的寬度。
我們用幾個張量來表示我們的參數。注意,對于每一層我們都需要記錄一個權重矩陣和一個偏置向量。跟以前一樣,我們要為這些參數的損失梯度分配內存。

num_inputs, num_outputs, num_hiddens = 784, 10, 256
W1 = nn.Parameter(torch.randn(
num_inputs, num_hiddens, requires_grad=True) * 0.01)
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
W2 = nn.Parameter(torch.randn(
num_hiddens, num_outputs, requires_grad=True) * 0.01)
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))
params = [W1, b1, W2, b2]

激活函數

為了確保我們知道一切是如何工作的,我們將使用最大值函數自己實現ReLU激活函數,而不是直接調用內置的relu函數。

def relu(X):
	a = torch.zeros_like(X)
	return torch.max(X, a)

模型

因為我們忽略了空間結構,所示我們使用reshape將每個二維圖像轉換為一個長度為num_inputs的向量。我們只需幾行代碼就可以實現我們的模型。

def net(X):
	X = X.reshape((-1, num_inputs))
	H = relu(X@W1 + b1)    # 這里“@”代表矩陣乘法
	return (H@W2 + b2)

損失函數

為了確保數值的穩定性,同時由于我們已經從零實現過softmax函數,因此在這里我們直接使用高級API中的內置函數來計算softmax和交叉熵損失。

loss = nn.CrossEntropyLoss()

訓練

幸運的是,多層感知機的訓練過程與softmax回歸的訓練過程完全相同。可以直接調用d2l包的train_ch4函數,將迭代周期設置為10,并將學習率設置為0.1。

num_epochs, lr = 10, 0.1
updater = torch.optim.SGD(params, lr=lr)
d2l.train_ch4(net, train_iter, test_iter, loss, num_epochs, updater)

如何實現pytorch多層感知機

為了對學習到的模型進行評估,我們將在一些 測試數據上應用這個模型。

d2l.predict_ch4(net, test_iter)

如何實現pytorch多層感知機

到此,相信大家對“如何實現pytorch多層感知機”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖南省| 临西县| 昌宁县| 舒兰市| 平果县| 揭西县| 阳泉市| 永年县| 汨罗市| 怀宁县| 白山市| 泽库县| 会泽县| 资讯| 西宁市| 凌海市| 沙坪坝区| 共和县| 通州市| 始兴县| 盖州市| 姜堰市| 商河县| 茌平县| 灌阳县| 衡南县| 桓台县| 阳新县| 青岛市| 尚志市| 梅河口市| 卢湾区| 乌兰浩特市| 景泰县| 宣武区| 班玛县| 醴陵市| 涿鹿县| 伊宁市| 元朗区| 竹山县|