【深度学习】日常笔记6

   if isinstance(net, torch.nn.Module):

        net.train()

可以改成

 if net == torch.nn.Module:

        net.train()

吗?

答(自问自答):

不可以。

torch.nn.Module 是一个类,而 net 是一个对象。isinstance() 函数判断 net 是否属于 torch.nn.Module 类或其子类的实例,因此第一个代码片段是正确的。

但是第二个代码片段中,判断 net 是否等于 torch.nn.Module 这个类本身是不正确的。这样判断会始终返回 False,因为 net 是一个对象,而 torch.nn.Module 是一个类,两者并不相等。

p128习题

2. 增加迭代周期的数量。为什么测试精度会在⼀段时间后降低?我们怎么解决这个问题?

增加迭代周期的数量可能会在一定程度上提高模型的训练精度,但是如果迭代周期过多,测试精度可能会出现下降的趋势。这是因为在训练集上过多的迭代会导致模型过拟合,从而无法泛化到新数据。

为了解决这个问题,我们可以采用以下方法:

1. 早停止:在验证集上监测模型性能,当性能不再提高时停止训练。

2. 正则化:通过添加正则化项来减少模型的复杂度。

3. 数据增强:通过对训练数据进行扩充和变换,来增加样本数量和多样性,使得模型更具有泛化能力。

4. 调整超参数:例如学习率、批量大小等,最终选择一个最优的超参数组合。

5. 使用预训练模型:使用经过大规模数据训练的预训练模型作为初始模型,可以显著提高模型的泛化能力

最简单的深度⽹络称为多层感知机。多层感知机由多层神经 元组成,每⼀层与它的上⼀层相连,从中接收输⼊;同时每⼀层也与它的下⼀层相连,影响当前层的神经元。

softmax回归是一种单层神经网络,这是因为在softmax回归中,只存在一个输出层,而没有隐藏层,所以被称为单层神经网络。

怎么看层数呢?神经网络的层数通常指的是包含多少个隐藏层,因为输入层和输出层的存在是确定的。实际上,有时候在讨论神经网络的层数时,我们会将输出层也计算在内。

在softmax回归中,由于只有输入层和输出层,没有任何隐藏层,因此可以将输出层视为唯一的层,这时候该模型的总层数就是1,符合这种计算方法。因此softmax回归通常被称为单层神经网络。

似然是指在给定某个统计模型和一组观测数据的情况下,计算这组数据出现的概率密度函数值的过程。简单来说,似然度就是用来衡量观测到的数据集合与某个假设模型之间的适配程度或匹配程度。

因为如果模型和数据越符合,似然越大,并且对于连续分布情况,那么概率就越大,自然概率密度函数就越大;或者对于离散分布的来说,概率的乘积就越大。

猜你喜欢

转载自blog.csdn.net/qq_45732909/article/details/131362154