动手学习pytorch——多层感知机

Posted ljwgis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手学习pytorch——多层感知机相关的知识,希望对你有一定的参考价值。

  多层感知机(multi perceptron,MLP)。对于普通的含隐藏层的感知机,由于其全连接层只是对数据做了仿射变换,而多个仿射变换的叠加仍然是一个仿射变换,即使添加更多的隐藏层,这种设计也只能与仅含输出层的单层神经网络等价。解决问题的一个方法是引入非线性变换,对隐藏变量使用非线性变化,然后作为下一个全连接层的输入,这个非线性函数被称为激活函数。

  激活函数主要有ReLu、Sigmoid、tanh。其中ReLu计算简单,且不像其他两个哪个容易造成梯度消失,使用较多。

技术图片

 

  多层感知机pytorch实现如下:

import torch
from torch import nn
from torch.nn import init
import numpy as np
import sys
sys.path.append("/home/kesci/input")
import d2lzh1981 as d2l

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
num_epochs = 5
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size,root=/home/kesci/input/FashionMNIST2065)

loss = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.5)

d2l.train_ch3(net, train_iter, test_iter, loss, num_epo

 

以上是关于动手学习pytorch——多层感知机的主要内容,如果未能解决你的问题,请参考以下文章

深度学习基础--多层感知机(MLP)

深度学习入门多层感知机

深度学习6. 多层感知机及PyTorch实现

深度学习6. 多层感知机及PyTorch实现

深度学习6. 多层感知机及PyTorch实现

Pytorch学习笔记——多层感知机的实现