softmax 回归的从零开始实现 讨论区

请问随机初始化是在哪体现的呢

谢谢 我今天看明白了 但是不是很清楚 为什么在从0开始实现线性回归和softmax的章节中,训练模型的时候直接调用了sgd算法,而使用Gluon实现的时候就需要一个step函数来对梯度取平均值呢?

pick(data=null,index=none,axis=null)
http://mxnet.incubator.apache.org/api/python/docs/api/ndarray/ndarray.html#mxnet.ndarray.pick

这是跟MNIST数据集有关系,MNIST中的图片是一个8位的黑白图像,取值范围为0 ~ 255. 除以255使每个像素值都在[0, 1]之间,数据归一化,是数据预处理的几种操作之一,有兴趣可以再搜下。

可能是你之前的batch_size = 256未运行

evaluate_accuracy(test_iter, net)
为什么我随机化初始参数调用这个函数,除了打印准确率外,会将每行的sum结果打印出来?

 [ 9.844449 ]
 [ 9.566665 ]
 [10.312273 ]
.......
 [ 9.722247 ]
 [ 9.887327 ]
 [ 9.311094 ]]
<NDArray 256x1 @cpu(0)>

菜鸟求问这个是怎么回事

kernel error

重启juoyter notebook试试
此外看看终端启动有没有报什么错误


真的解决不了了,有人有解决方案吗?

非常感谢,现在这个链接下载速度已经非常快了。(因为公司的电脑可能设置代理的缘故,通过代码下载总是连接失败,用这个链接再配合修改最后的文件名就把4个文件都下载了):slight_smile:

也可以在https://github.com/zalandoresearch/fashion-mnist里面下载

image

报错原因:
Check failed: axes[axes.ndim()-1] < ishape.ndim() (1 vs. 1) Reduction axis 1 Exceeds input dimensions [1]

请问是什么意思?

def cross_entropy(y_hat, y):
return -nd.pick(y_hat, y).log()#
请问一下各位,这个cross_entropy函数我对比了书上的交叉熵数学定义,应该不是完全按照交叉熵的定义来实现的吧?是认为样本中只有一个物体或者只属于只属于一个标签的简化实现吧?

def accuracy(y_hat, y):
return (y_hat.argmax(axis=1) == y.astype(‘float32’)).mean().asscalar()

这个为啥要把y转为浮点型的?argmax出来的索引应该就是整形的吧?

你跑一下就知道了,出来的索引是float32类型的

:+1:解释的好清晰,终于搞懂了