【深度学习】Softmax回归(三)MXNet深度学习框架实现

概述

本文使用MXNet深度学习框架来实现softmax回归模型,并利用Fashion-MNIST数据集进行实验。需要的前导知识可以参考我之前的博文:

实验和结果

# coding=utf-8
# author: BebDong
# 2018/12/19
# 使用MXNET框架的gluon包实现Softmax回归模型

import gluonbook as gb
from mxnet import init, gluon
from mxnet import autograd
from mxnet.gluon import loss as gloss
from mxnet.gluon import nn

# 读取数据
batch_size = 256
train_iter, test_iter = gb.load_data_fashion_mnist(batch_size)

# 创建模型:softma模型在Fashion-MNIST数据集下的输出层个数为10,且输出层为全连接层
net = nn.Sequential()
net.add(nn.Dense(10))

# 初始化模型参数
net.initialize(init.Normal(sigma=0.01))

# 定义损失函数
loss_function = gloss.SoftmaxCrossEntropyLoss()

# 优化算法(训练器):小批量随机梯度下降
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1})

# 训练模型
epochs = 10
for epoch in range(epochs):
    # 总的损失
    train_loss_sum = 0
    # 总的准确率
    train_acc_sum = 0
    for X, y in train_iter:
        with autograd.record():
            y_pre = net(X)
            los = loss_function(y_pre, y)
        los.backward()
        trainer.step(batch_size)
        train_loss_sum += los.mean().asscalar()
        train_acc_sum += gb.accuracy(y_pre, y)
    print('epoch %d, loss %.4f, train acc %.3f' % (epoch + 1, train_loss_sum / len(train_iter), train_acc_sum / len(train_iter)))

# 测试模型
test_acc = gb.evaluate_accuracy(test_iter, net)
print("Training done, test accuracy is: ", test_acc)

我的运行结果如下;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值