美文网首页
深度学习_Softmax简洁实现(Gluon实现)

深度学习_Softmax简洁实现(Gluon实现)

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

Softmax多分类简洁实现 (Gluon实现)

导入必要的包

import d2lzh as d2l
from mxnet import nd
from mxnet.gluon import data as gdata,loss as gloss,nn
from mxnet import gluon,init

获取和读取数据

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

定义和初始化模型

net = nn.Sequential()
net.add(nn.Dense(10))
net.initialize(init.Normal(sigma=0.01))

定义交叉熵损失函数

loss = gloss.SoftmaxCrossEntropyLoss()

定义优化算法

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

训练模型

num_epochs = 5
help(d2l.train_ch3)
d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,batch_size,None,None,trainer)
Help on function train_ch3 in module d2lzh.utils:

train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, params=None, lr=None, trainer=None)
    Train and evaluate a model with CPU.

epoch 1, loss 0.7863, train acc 0.749, test acc 0.801
epoch 2, loss 0.5733, train acc 0.811, test acc 0.819
epoch 3, loss 0.5288, train acc 0.824, test acc 0.833
epoch 4, loss 0.5050, train acc 0.831, test acc 0.834
epoch 5, loss 0.4897, train acc 0.835, test acc 0.838

显示预测结果

for X, y in test_iter:
    break

true_labels = d2l.get_fashion_mnist_labels(y.asnumpy())
pred_labels = d2l.get_fashion_mnist_labels(net(X).argmax(axis=1).asnumpy())
titles = [true + '\n' + pred for true, pred in zip(true_labels, pred_labels)]

d2l.show_fashion_mnist(X[0:9], titles[0:9])
预测结果

相关文章

网友评论

      本文标题:深度学习_Softmax简洁实现(Gluon实现)

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