Python深度學習pytorch神經網絡多層感知機簡潔實現

我們可以通過高級API更簡潔地實現多層感知機。

import torch
from torch import nn
from d2l import torch as d2l

模型

與softmax回歸的簡潔實現相比,唯一的區別是我們添加瞭2個全連接層。第一層是隱藏層,它包含256個隱藏單元,並使用瞭ReLU激活函數。第二層是輸出層。

net = nn.Sequential(nn.Flatten(),
					nn.Linear(784, 256),
					nn.ReLU(),
					nn.Linear(256, 10))
def init_weights(m):
	if type(m) == nn.Linear:
		nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights)

訓練過程的實現與我們實現softmax回歸時完全相同,這種模塊化設計使我們能夠將與和模型架構有關的內容獨立出來。

batch_size, lr, num_epochs = 256, 0.1, 10    # 批量大小為256,學習率為0.1,類型為10
loss = nn.CrossEntropyLoss()    # 使用交叉熵損失函數
trainer = torch.optim.SGD(net.parameters(), lr=lr)    # 開始訓練
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

在這裡插入圖片描述

以上就是Python深度學習pytorch神經網絡多層感知機簡潔實現的詳細內容,更多關於pytorch神經網絡的資料請關註WalkonNet其它相關文章!

推薦閱讀: