3.10多層感知機の簡潔な実現
5065 ワード
学習サイト:http://tangshusen.me/Dive-into-DL-PyTorch/#/
隠し層として全連結層を追加しました。その隠しユニットの個数は256で、ReLU関数を活性化関数として使用します。
使用しているのはPyTorchのSGDです。d 2 lzh_ではありません。pytochの中のsgdは3.9節ほど勉強率が大きく見える問題がありません。
import torch
from torch import nn
from torch.nn import init
import numpy as np
import sys
sys.path.append("..")
import d2lzh_pytorch as d2l
1定義モデル隠し層として全連結層を追加しました。その隠しユニットの個数は256で、ReLU関数を活性化関数として使用します。
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)
2データを読み、モデルを訓練する使用しているのはPyTorchのSGDです。d 2 lzh_ではありません。pytochの中のsgdは3.9節ほど勉強率が大きく見える問題がありません。
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
loss = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.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)
epoch 1, loss 0.0031, train acc 0.699, test acc 0.748
epoch 2, loss 0.0019, train acc 0.822, test acc 0.772
epoch 3, loss 0.0017, train acc 0.842, test acc 0.834
epoch 4, loss 0.0015, train acc 0.857, test acc 0.851
epoch 5, loss 0.0014, train acc 0.865, test acc 0.852