pytorch十四:pytorch实战(猫和狗二分类)

猫狗二分类是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.Module):
    def __init__(self,num_class=2):
        nn.Module.__init__(self)
        
        self.features = nn.Sequential(
            #conv1
            nn.Conv2d(3,96,kernel_size=11,stride=4),
            nn.ReLU(inplace=True),#对原变量进行覆盖
            nn.MaxPool2d(kernel_size=3,stride=2),
            nn.ReLU(inplace=True),

你可能感兴趣的:(pytorch)