学习内容:
将AlexNet转换至paddle并成功运行、学习了VGGNet并了解到感受野、将VGGNet在paddle上运行。
对整个流程的感受:
- 加载数据集,datasets.ImageFolder函数加载数据集,再配合DataLoader可以对数据集进行打乱操作,同时得到数据集的迭代器以遍历所有的数据。
- 实例化模型,给定对应的参数。
- 定义损失函数,计算预测值与真实值之间的损失。
- 定义优化器,将模型的所有可训练参数和学习率作为参数。
- EPOCHS循环,指定迭代次数。
- 每次循环中遍历DataLoader得到的数据。
- 在上一个遍历中首先拿到每一个数据将输入和标签分开,再进行优化器的梯度清零,接着将输入放到模型得到输出,其次就根据定义的损失函数计算预测值和真实值之间的损失,然后对损失的反向传播,最后更新模型的权重。
- 验证集的表现,与7类似,不同之处在于得到模型的输出后,结果softmax得到了一组概率值,需要对输出取最大值对应的索引位置值,表示模型的预测结果,谁的概率值越大,模型就预测结果为哪一类别,这里会使用到torch.max函数,得到预测结果和真实标签后就可以对模型进行相应的评价,如acc,f1_score等等。