猫狗二分类是kaggle上一个经典的比赛,数据集可在kaggle官网进行下载,其训练集包含25000张。
在做深度学习项目时,往往都需要以下几个部分:
- 模型定义
- 数据处理和加载
- 参数配置
- 训练模型(train & validate)
- 测试
关于__init__.py
可以看到,几乎每个文件夹下都有__init__.py,一个目录如果包含了一个__init__.py文件,那么它就变成了一个包(package)。__init__.py可以为空,也可以定义包的属性和方法,但其必须存在,其它程序才能从这个目录导入相应的模块或函数。例如在data/文件夹下有__init__.py和dataset.py两个文件,要想在其它函数中可以导入dataset.py里的函数或类(比如这里dataset.py文件里定义了DogCat类),在其它函数就可以通过from data.dataset import DogCat导入DogCat类。
模型定义
models文件夹下已经定义好了AlexNet和ResNet34等网络,这里采用AlexNet网络模型。
from torch import nn
class AlexNet(nn.Mo