【学习记录】深度学习

深度学习步骤

在这里插入图片描述

搭建模型的workspace

在这里插入图片描述

Dataset在这里插入图片描述

dataset中的getitem会自动把数据转换成tensor类型

config

在计算机领域中,config通常指的是配置文件(configuration file),也称作配置项或配置信息。配置文件是一种文本文件,用于存储应用程序或系统的各种配置信息,例如网络配置、数据库配置、日志配置、安全配置等等。

包括:Data, Model Structure, Experiment

在这里插入图片描述

二分类问题

在这里插入图片描述
输出两个节点 表示分类一和分类二的概率

onehot编码

from torch.nn import functional as F
data_y = F.one_hot(data_y)  # one hot encode
""" shape: [n_item, 2]
tensor([[1, 0],
        [1, 0],
        [0, 1],
        ...,
        [1, 0],
        [1, 0],
        [1, 0]])
"""

nn.CrossentropyLoss()

criterion = nn.CrossEntropyLoss()
不需要进行onehot操作

感知机

包括:线性层+激活函数 —>输出
其中nn.Linear()就是线性层,不包括激活函数


class BinaryClassificationModel(nn.Module):
    def __init__(self, in_feature):
        super(BinaryClassificationModel, self).__init__()
        """ single perceptron 
        self.layer_1 = nn.Linear(in_features=in_feature, out_features=2, bias=True)
        """

        """ multi perceptron """
        self.layer_1 = nn.Linear(in_features=in_feature, out_features=128, bias=True)
        self.layer_2 = nn.Linear(in_features=128, out_features=512, bias=True)
        # 。。。
        self.layer_final = nn.Linear(in_features=512, out_features=2, bias=True)

    def forward(self, x):
        layer_1_output = F.sigmoid(self.layer_1(x))
        layer_2_output = F.sigmoid(self.layer_2(layer_1_output))
        output = F.sigmoid(self.layer_final(layer_2_output))
        return output


torch.nn

nn.ModuleList()

损失函数

nn.BCEloss() 二分类损失函数

epoch和step的区别

在深度学习模型的训练过程中,通常会使用epoch和step来衡量训练的进度。

epoch: 指的是模型在整个训练集上训练的次数,也就是将整个训练集数据都用来训练一遍的次数。例如,一个epoch等于将训练数据集中的所有数据都传入模型中进行了一次前向计算和反向传播计算。一般来说,训练epoch数越多,模型的表现会越好,但是也会增加过拟合的风险。

step: 指的是每次迭代更新模型参数的次数。一个step等于使用一个batch的数据进行一次前向计算和反向传播计算,然后更新模型参数的一次迭代。例如,一个batch大小为32,训练集数据总数为10000,则一个epoch的step数为10000/32=312.5,实际通常会向下取整,即为312。

在训练过程中,通常会设置epoch数和step数的上限,当达到上限时训练结束。同时,还可以根据验证集的表现来进行早期停止等策略,以防止过拟合的出现。

tensorboardX的使用

在这里插入图片描述
使用cd一步步进入到log文件夹,再使用tensorboard --logdir=./
进入到 http://localhost:6006/

数据集的划分

在这里插入图片描述

正确的初始化参数

在这里插入图片描述
在这里插入图片描述

激活函数

在这里插入图片描述
在这里插入图片描述
尽量使用mish激活函数

优化器

在这里插入图片描述
SGD 所有参数共用一个学习率,vt表示动量。
Ada 每个参数都有自己的学习率,随着步数的增加,学习率会慢慢下降。

在这里插入图片描述

check point 的设置

def save_checkpoint(model_, epoch_, optm, checkpoint_path):
    save_dict = {
        'epoch': epoch_,
        'model_state_dict': model_.state_dict(),
        'optimizer_state_dict': optm.state_dict()
    }
    torch.save(save_dict, checkpoint_path)

if not step % HP.save_step: # model save
    model_path = 'model_%d_%d.pth' % (epoch, step)
    save_checkpoint(model, epoch, opt, os.path.join('model_save', model_path))

Q: .pth是什么文件
A: ".pth"是PyTorch中的模型文件扩展名。它包含了模型的所有参数、权重和偏差等信息。在PyTorch中,我们可以通过保存模型的state_dict(包含模型的参数)或者直接保存整个模型来生成.pth文件,以便在将来使用模型时加载它们。

Q: 用什么方法保存
**A:**可以使用PyTorch中的torch.save()函数将模型的参数保存到.pth文件中。该函数接受两个参数:第一个参数是要保存的Python字典对象,第二个参数是要保存的文件路径。在保存模型参数时,通常会将模型的状态字典(state_dict)、优化器的状态字典(如果使用了优化器)以及当前的epoch数保存在一起,以便在恢复模型时可以同时加载这些信息。

Normalization

希望每一层的输出都是独立同分布的
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《鲁伟深度学习笔记》是一本关于深度学习的资料,提供了对深度学习的深入理解和实践指导。这本笔记以简明扼要的方式介绍了深度学习的基本原理和常用算法,并结合实例讲解了如何使用深度学习解决实际问题。 首先,笔记从深度学习的基础概念入手,包括神经网络、激活函数、损失函数等,为读者打下坚实的理论基础。然后,笔记详细介绍了深度学习中常用的模型结构,如卷积神经网络、循环神经网络等,并对它们的原理和应用进行了剖析。 此外,笔记还重点介绍了深度学习中的优化算法和正则化方法,如梯度下降、随机梯度下降、批量归一化等,帮助读者了解如何提高模型的性能和减少过拟合。 在实践部分,笔记提供了丰富的代码示例和数据集,通过实际操作,读者可以学到如何使用深度学习框架搭建模型、训练和评估模型,并解决真实世界的问题。 总的来说,《鲁伟深度学习笔记》是一本深度学习入门的好资料,通过阅读笔记,读者可以初步掌握深度学习的基本原理和应用方法,为进一步深入学习和研究打下基础。 ### 回答2: 《鲁伟深度学习笔记》pdf可以在网络上找到,它是对深度学习领域的一本权威教材。这本书由知名的教育家鲁伟撰写,详细介绍了深度学习所涉及的各个方面和应用。该pdf经过了精心编辑和排版,使读者能够很方便地阅读。 这本笔记的内容包括深度学习的基本概念、神经网络的原理、常用的深度学习模型以及它们的应用领域等。书中详细介绍了卷积神经网络、循环神经网络和生成对抗网络等常用模型,并给出了它们的实际案例和代码实现。 阅读《鲁伟深度学习笔记》pdf对于深度学习初学者和从业者来说都是很有价值的。对于初学者来说,它提供了一个很好的入门教材,帮助他们快速了解深度学习的基本概念和应用。对于从业者来说,它提供了详细的技术指导和实践案例,帮助他们提高自己的技术水平和解决实际问题。 总而言之,《鲁伟深度学习笔记》pdf是一本权威且实用的深度学习教材,适合各个层次的读者参考学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值