Softmax回归的简洁实现

http://zh-v2.d2l.ai/chapter_linear-networks/softmax-regression-concise.html

1.Pass.
2.It’s the phenomenon called overfitting. We can add more samples to the training set and introduce L2 normalization into our model.

# PyTorch不会隐式地调整输入的形状。
# 因此,我们定义了展平层(flatten)在线性层前调整网络输入的形状
net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10))

这里注释的第2行翻译成“因此,我们在线性层前定义了展平层(flatten),来调整网络输入的形状”更符合中文逻辑。

Hi @bereze, 感谢分享,我们已经 fix here。欢迎下次 contribute 到PR!

在用pycharm实现时,出现错误:TypeError: torch.nn.modules.flatten.Flatten is not a Module subclass该在吗解决

是不是Flatten后面没有加括号,nn.Flatten()

d2l包里pytorch子模块下的get_dataloader_workers()函数存在问题,在windows上容易引发问题。


应当改为

def get_dataloader_workers():
       return 0 if sys.platform.startswith('win') else 4

在MXNET版本下的get_dataloader_workers()函数就没有问题

2 Likes

如何在pycharm中实现此结果的图像输出?

d2l.plt.show()或者plt.show()(先导入matplotlib)

1 Like

初始化权重的时候是随机的吗,需要设置为全零嘛

nn.init.normal_(Tensor, mean=0.0, std=1.0)

这里没有写mean关键字,直接采用缺省参数(即0.0)

1 Like

pycharm如何显示图像,最后plt.show()怎么写

请问具体的plt.show()括号里边的参数怎么写的

image
这里不还是会溢出吗

请问使用高级api语句:net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10)),net(X)的输出是自带softmax归一吗。

想问一下这里的softmax归一是怎么实现的呢?并没有看到有对网络的输出进行softmax回归的代码啊…

自问自答一下吧,这件事在计算损失函数时,顺便做了。

会的 我做了实验。。。。。。。。凑够20字

这里初始化参数的时候好像只初始化了w,但是b没有被初始化啊

你可以看一下logsunexp技巧,在实际操作的时候一般从ok里找找最大值,然后在所有exp项中提出这个常数,就可以有效防止上溢和下溢。