动手学习深度学习1-5 softmax mxnet实现

%matplotlib inline
import gluonbook as gb
from mxnet import gluon, init
from mxnet.gluon import loss as gloss, nn
#读入数据
batch_size = 256
train_iter, test_iter = gb.load_data_fashion_mnist(batch_size)
#定义和初始化模型
# 我们提到 softmax 回归的输出层是一个全连接层。
# 因此,我们添加一个输出个数为 10 的全连接层。我们使用均值为 0 标准差为 0.01 的正态分布随机初始化模型的权重参数。
net = nn.Sequential()
net.add(nn.Dense(10))
net.initialize(init.Normal(sigma=0.01))
#softmax 和交叉熵损失函数那么你可能意识到了分开定义 softmax 运算和交叉熵损失函数可能会造成数值不稳定。
# 因此,Gluon 提供了一个包括 softmax 运算和交叉熵损失计算的函数。它的数值稳定性更好。
loss = gloss.SoftmaxCrossEntropyLoss()
#优化算法 用学习率为 0.1 的小批量随机梯度下降作为优化算法
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1})
#训练模型
num_epochs = 5
gb.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size, None,
             None, trainer)

猜你喜欢

转载自blog.csdn.net/qq_36666756/article/details/83215658