动手学习深度学习1-4 softmax

本文介绍了softmax回归的从零开始实现,包括理解softmax的原理和交叉熵损失函数的计算。文章提醒在实现过程中要注意数值稳定性问题,特别是在使用exp(x)函数时可能会导致精度计算不准确。同时,提到了增大学习率可能导致模型性能下降。
摘要由CSDN通过智能技术生成

Softmax 回归的从零开始实现

理解:https://blog.csdn.net/red_stone1/article/details/80687921

%matplotlib inline
import gluonbook as gb  #要把这个包放在同一个根目录下
from mxnet import autograd, nd
#============获取和读取数据使用 Fashion-MNIST 数据集,并设置批量大小为 256
batch_size = 256
train_iter, test_iter = gb.load_data_fashion_mnist(batch_size)#完成了将数据封装成数据迭代器
#这函数中有.vision.FashionMNIST()会自动下载数据还有.DataLoader()这函数是将数据弄成一个数据迭代器

#===========初始化模型参数
#跟线性回归中的例子一样,我们将使用向量表示每个样本。已知每个样本输入是高和宽均为 28 像素的图像。
#模型的输入向量的长度是  28×28=784 :该向量的每个元素对应图像中每个像素。由于图像有 10 个类别,单层神经网络输出层的输出个数为 10。
#所以 Softmax 回归的权重和偏差参数分别为 784×10  和  1×10 的矩阵。
num_inputs=784
num_outputs=10
W=nd.random.normal(scale=0.01,shape=(num_inputs,num_outputs))
b=nd.zeros(num_outputs)
W.attach_grad()  #就是为参数梯度的存放开辟了空间,以助于参数更新的时候进行访问
b.attach_grad()

#===========实现 Softmax 运算
#给定一个 NDArray 矩阵X。我们可以只对其中同一列(axis=0)或同一行(axis=1)的元素求和,
# #并在结果中保留行和列这两个维度(keepdims=True)。
# X = nd.array([[1, 2, 3], [4, 5, 6]])
# X.sum(ax
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值