码迷,mamicode.com
首页 > 其他好文 > 详细

动手学习pytorch——(3)多层感知机

时间:2020-02-13 00:28:31      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:oss   span   ram   tor   dde   mic   梯度   style   动手   

  多层感知机(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——(3)多层感知机

标签:oss   span   ram   tor   dde   mic   梯度   style   动手   

原文地址:https://www.cnblogs.com/ljwgis/p/12301695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!