ResNet18-实现图像分类

图像识别

图像分类

目标检测

语义分割 

github代码:PositiveTom/Resnet18 (github.com)

残差网络构建易错点:

下面 红框一定要有,否则会报严重的error。

PyTorch中网络里面的inplace=True字段的意思_TravelingLight77的博客-CSDN博客_inplace=true

一. 原理

参见论文:何凯明:Deep Residual Learning for Image Recognition

网络结构之所以是18层(只算卷积层,全连接层),看下链接

经典CNN网络:Resnet18网络结构输入和输出_呆呆珝的博客-CSDN博客_resnet18

再来分析代码:

一个残差结构有两个卷积层 

如下便是tensorboard里面显示的一个残差块的结构。 

关于tensorboard的使用参考如下链接。

tensorboard使用记录_AutoGalaxy的博客-CSDN博客

小插曲:数据集训练的次数总结

训练集50000张图片:

总共训练135 幕(epoch)

每一幕都作相同的事:

        每一幕做的事如下:

                把50000张图片按照batch_size(128)分为390.625份

                一幕中要计算390.625次误差,也意味着要更新390.625次参数

                每一次误差的计算需要batch_size张图片

epoch代表第几幕

length表示391

iter表示迭代次数

一幕中迭代391次,两幕一共迭代782次,依次类推....

sum_loss / (i + 1)表示平均每迭代一次之后的平均损失
correct / total  total随着batch的增加而增加,128,256,384,512....

这里表示,第几幕,第几次迭代时,的正确率。

这里的平均损失,平均正确率都是以一幕为基础考虑的。

小插曲:

        神经网络epoch开始训练之前要用net.train()

            for epoch in range(pre_epoch, EPOCH):
                print('\nEpoch: %d' % (epoch + 1))
                net.train()

        神经网络开始test之前要用net.eval()

                    for data in testloader:
                        net.eval()

二. 代码

使用的库:
torchvision:处理图像数据,包含一些数据集,模型,转换函数,独立于pytorch,需要独立安装,主要由以下四部分组成

(1)torchvision.models:提供深度学习中经典的网络结构(Alex-net,ResNet,VGG,Inception)

(2)torchvision.datasets:提供常用的数据集

(3)torchvision.transforme:常用的数据预处理操作

(4)torchvisi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值