PyTorch的组件和实战
1. 前言
回顾机器学习的步骤:
- 对数据进行预处理,首先需要对数据进行预处理,其中重要的步骤包括数据格式的统一和必要的数据变换,同时划分训练集和测试集
- 选择模型,并设定损失函数和优化方法,以及对应的超参数(可以使用类似sklearn的机器学习库中模型自带的损失函数和优化器)
- 使用模型去拟合训练集数据,并在验证集/测试集上计算模型表现
深度学习的流程和机器学习的流程类似,但有以下差异:
- 数据加载:但是由于深度学习所需的样本量很大,一次加载全部数据运行可能会超出内存容量而无法实现;同时还有批(batch)训练等提高模型表现的策略,因此深度学习通常会设置batch_size和epoch
- 模型实现:深度神经网络层数往往较多,同时会有一些用于实现特定功能的层(如卷积层、池化层、批正则化层、LSTM层等),因此深度神经网络往往需要“逐层”搭建,或者预先定义好可以实现特定功能的模块,再把这些模块组装起来。
- 损失函数和优化器的设定:损失函数和优化器要能够保证反向传播能够在用户自行定义的模型结构上实现
- 训练设备:程序默认是在CPU上运行的,而在深度学习中,通常需要使用多张GPU训练,需要考虑模型和数据分配、整合的问题,因此涉及到GPU的配置和操作
- 各个模块配合的问题:深度学习中的训练和验证过程通常是一次读入一个批次的数据,然后将损失函数反向传播回网络最前面的层,同时使用优化器调整网络参数。这里会涉及到各个模块配合的问题。训练/验证后还需根据设定好的指标计算模型表现。