Softmax回归的简洁实现

@anirudh
Hi,I run the code on windows 10 and I meet the same error. Part of the error is below:
“”"
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

raise RuntimeError(‘DataLoader worker (pid(s) {}) exited unexpectedly’.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 12652, 14404, 13996, 13536) exited unexpectedly
“”"

All the environmets including version of python and torch are the same as those in book

It is said that pytorch may suffer from multi-threading error when reading data on windows.

Setting num_workers=0 solve this error

是的,才发现d2l包里的代码没有和文档代码一起更新,导致了很多bug,现在重写了一遍就都ok了!

感谢兄弟!对pytorch的方法不熟悉,哪里出问题了都不知道,现在总算能跑起来了

js文件无法加载,导致所有公式显示错乱:
https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js

我也是这里报错,请问怎么修改num_workers ?

K6S~R~7R(CQHW~12)S%L
下面有个楼主好像mean()加错位置了,加在这个位置就解决了

我试了一下softmax和交叉熵结合在一起算log(y_hat)那个公式,用excel算的。不知怎么总是不对,只有output最大的那一项能够吻合。我是哪里理解错了吗?先谢过牛人啦!这里我假设有两个output,分别是1和2:

希望这个链接对你有用

1 Like

把reduction=none去掉。。。。。。。。。。

yes, it’s very useful.

老师好!大佬们好!请问除了Softmax回归从零开始实现外,凡是碰到d2l.train_ch3或d2l.train_epoch_ch3的都会报以下错误,应该怎么办?
RuntimeError: grad can be implicitly created only for scalar outputs

爬楼翻到了:loss = nn.CrossEntropyLoss()
已解决

3.5 和 3.6 的代码要一起运行,3.7的代码要单独运行,这样就不会报错了

我也遇到了这个问题。建议作者改一下代码。谢谢。

后续代码net. Apply(init_weights);应该会遍历网络的每一层并执行init_weights

1 Like

我是在VS Code里面直接运行脚本的,对d2l中的工具代码稍微做了修改,PyCharm中应该也适用。

我试了一下,确实是可以的,请问为什么要去掉呢?谢谢 ~

因为reduction=‘none’,它会将几个输出的loss组合为一个向量,而求梯度要求输出为标量

我也遇到同样的问题,但是将metric.add(float(l), accuracy(y_hat, y), y.numel())之后又出现新的问题。
image

3.7.2 说了 , softmax只是求概率的方法,实际中简化计算放到交叉熵损失中了。