美文网首页
多层感知机(MLP)实现

多层感知机(MLP)实现

作者: VictorHong | 来源:发表于2019-08-01 21:43 被阅读0次

MLP实现

从零开始实现

首先导入必要的包

import d2lzh as d2l
from mxnet import autograd,nd
from mxnet.gluon import loss as gloss

读取数据

batch_size = 256
train_iter,test_iter = d2l.load_data_fashion_mnist(batch_size)

定义模型参数

num_inputs= 784
num_outputs = 10
num_hiddens = 256

W1 = nd.random.normal(scale=0.01,shape=(num_inputs,num_hiddens))
b1 = nd.zeros(shape=num_hiddens)
W2 = nd.random.normal(scale=0.01,shape=(num_hiddens,num_outputs))
b2 = nd.zeros(shape=num_outputs)

params = [W1,b1,W2,b2]
for param in params:
    param.attach_grad()

定义激活函数

def relu(x):
    return nd.maximum(0,x)

定义模型

def net(X):
    X = X.reshape((-1,num_inputs))
    H = relu(nd.dot(X,W1)+b1)
    return nd.dot(H,W2)+b2

定义损失函数

loss = gloss.SoftmaxCrossEntropyLoss()

训练模型

num_epochs,lr = 5,0.5
#help(d2l.train_ch3)
d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,batch_size,params,lr)
epoch 1, loss 0.9075, train acc 0.711, test acc 0.826
epoch 2, loss 0.5075, train acc 0.812, test acc 0.836
epoch 3, loss 0.4439, train acc 0.834, test acc 0.855
epoch 4, loss 0.4128, train acc 0.848, test acc 0.852
epoch 5, loss 0.3991, train acc 0.853, test acc 0.856

简洁实现 Gluon实现

from mxnet import autograd,nd
from mxnet import gluon,init
from mxnet.gluon import data as gdata,loss as gloss,nn
net = nn.Sequential()
net.add(nn.Dense(256,activation='relu'),nn.Dense(10))
net.initialize(init.Normal(sigma=0.01))
batch_size = 256
num_epochs = 5
loss = gloss.SoftmaxCrossEntropyLoss()

trainer = gluon.Trainer(net.collect_params(),'sgd',{'learning_rate':0.5})

d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,batch_size,None,None,trainer)
epoch 1, loss 0.3552, train acc 0.869, test acc 0.872
epoch 2, loss 0.3404, train acc 0.873, test acc 0.880
epoch 3, loss 0.3300, train acc 0.878, test acc 0.869
epoch 4, loss 0.3184, train acc 0.882, test acc 0.876
epoch 5, loss 0.3112, train acc 0.885, test acc 0.884

相关文章

  • 反馈神经网络

    1、Reference 多层感知机MLP(机器学习5)多层感知机原理详解 & Python与R实现深度学习笔记——...

  • 多层感知机(MLP)实现

    MLP实现 从零开始实现 首先导入必要的包 读取数据 定义模型参数 定义激活函数 定义模型 定义损失函数 训练模型...

  • 深度学习入门---多层感知机,过拟合和欠拟合,梯度消失和梯度爆炸

    1.多层感知机 多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Arti...

  • 多层感知机 MLP

    多层感知机 MLP 何为多层感知机? 就是在简单的神经网络,只包括输入层和输出层的之间加入一层或者多层隐藏层,这样...

  • MLP多层感知机

    MLP多层感知机:https://blog.csdn.net/fg13821267836/article/deta...

  • 02-25:DNN算法

    DNN算法 多层感知机MLP 2、一个例程代码 class MLP(tf.keras.Model): def ...

  • 一文理清深度学习前馈神经网络

    ? Index 多层感知机(MLP)介绍 深度神经网络的激活函数 深度神经网络的损失函数 多层感知机的反向传播算法...

  • 动手学深度学习(三) 多层感知机

    多层感知机 多层感知机的基本知识 使用多层感知机图像分类的从零开始的实现 使用pytorch的简洁实现 多层感知机...

  • 多层感知机 2020-02-18

    多层感知机 多层感知机的基本知识 使用多层感知机图像分类的从零开始的实现 使用pytorch的简洁实现 多层感知机...

  • 多层感知机

    多层感知机 多层感知机的基本知识 使用多层感知机图像分类的从零开始的实现 使用pytorch的简洁实现 多层感知机...

网友评论

      本文标题:多层感知机(MLP)实现

      本文链接:https://www.haomeiwen.com/subject/vrrhdctx.html