由于深度学习所需的样本量很大, 一次加载全部数据运行可能会超出内存容量而无法实现; 同时还有批(batch)训练等提高模型表现的策略, 需要每次训练读取固定数量的样本送入模型中训练.
深度学习中训练和验证过程最大的特点在于读入数据是按批,每次读入一个批次的数据,放入GPU中训练,然后将损失函数反向传播回网络最前面的曾, 同时使用优化器调整网络参数.这里会涉及到各个模块配合的问题.训练/验证后还需要根据设定好的指标计算模型表现.
os.environ['CUDA_VISIBLE_DEVICES'] = '0.1'
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
PyTorch数据读入是通过Dataset + DataLoader的方式完成的, Dataset定义好数据的格式和数据变换形式, DataLoader用iterative的方式不断读入批次数据.
待补