# 【2023-分类】手把手教你使用Pytorch训练自己的分类模型
![封面](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/%E5%B0%81%E9%9D%A2.png)
之前更新过一起tf版本的训练自己的物体分类模型,但是很多兄弟反应tf版本的代码在GPU上无法运行,这个原因是tf在30系显卡上没有很好的支持。所以我们重新更新一期Pytorch版本的物体分类模型训练教程,在这个教程里面,你将会学会**物体分类的基本概念+数据集的处理+模型的训练和测试+图形化界面的构建**。我这里使用的显卡是NVIDIA RTX3060 6G的笔记本显卡。为了避免带货的嫌疑,我就不说具体的机器型号了,实际的体验中呢,一般4G以上的显存跑个resnet和yolo之类的是没有问题的,如果你是科研人员的话(科研人员估计也不会看我的博客),则需要更牛的服务器来支持你的研究。
>博客地址:[【2023-pytorch-分类】手把手教你使用Pytorch训练自己的分类模型_肆十二的博客-CSDN博客](https://blog.csdn.net/ECHOSON/article/details/128130360)
>
>B站视频地址:[【2023-pytorch-分类】手把手教你使用Pytorch训练自己的分类模型_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV13P411K7Dq/)
>
>代码地址:[2023_pytorch110_classification_42: 使用Pyotrch1.10开发的深度学习物体分类系统,包含物体分类中的数据集搜集、模型训练、模型测试和可视化界面等流程 (gitee.com)](https://gitee.com/song-laogou/2023_pytorch110_classification_42)
>
>数据集地址:[花卉识别数据集5类-提供代码和教程.zip_花卉识别数据集,花卉数据集-深度学习文档类资源-CSDN文库](https://download.csdn.net/download/ECHOSON/19687660)
## 基本概念
![gogo](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/gogo.jpg)
从左向右依次是图像分类,目标检测,语义分割和实例分割。
**图像分类**是指为输入图像分配类别标签。自 2012 年采用深度卷积网络方法设计的 AlexNet 夺得 ImageNet 竞赛冠军后,图像分类开始全面采用深度卷积网络。2015 年,微软提出的 ResNet 采用残差思想,将输入中的一部分数据不经过神经网络而直接进入到输出中,解决了反向传播时的梯度弥散问题,从而使得网络深度达到 152 层,将错误率降低到 3.57%,远低于 5.1%的人眼识别错误率,夺得了ImageNet 大赛的冠军。
**目标检测**指用框标出物体的位置并给出物体的类别。2013 年加州大学伯克利分校的 Ross B. Girshick 提出 RCNN 算法之后,基于卷积神经网络的目标检测成为主流。之后的检测算法主要分为两类,一是基于区域建议的目标检测算法,通过提取候选区域,对相应区域进行以深度学习方法为主的分类,如 RCNN、Fast-RCNN、Faster-RCNN、SPP-net 和 Mask R-CNN 等系列方法。二是基于回归的目标检测算法,如 YOLO、SSD 和 DenseBox 等。
**图像分割**指将图像细分为多个图像子区域。2015 年开始,以全卷积神经网络(FCN)为代表的一系列基于卷积神经网络的语义分割方法相继提出,不断提高图像语义分割精度,成为目前主流的图像语义分割方法。实例分割则是实例级别的语义分割。
我们本期教程主要是<font color='red'>图像分类</font>,即给定一张图片,模型判断出他的具体类别。
## 环境配置
### Anaconda 和 Pycahrm安装
nvidia-驱动下载地址:[官方驱动 | NVIDIA](https://www.nvidia.cn/Download/index.aspx?lang=cn)
![image-20221206174728937](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/image-20221206174728937.png)
使用代码之前请先确保电脑上已经安装好了anaconda和pycharm。
环境的基本配置请看这期博客:[如何在pycharm中配置anaconda的虚拟环境_肆十二的博客-CSDN博客_pycharm配置anaconda虚拟环境](https://blog.csdn.net/ECHOSON/article/details/117220445)
miniconda下载地址:[Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/)
![image-20221206173858594](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/image-20221206173858594.png)
conda加速
```bash
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
```
Pycharm的下载地址:[Other Versions - PyCharm (jetbrains.com)](https://www.jetbrains.com/pycharm/download/other.html)
![image-20221206173934245](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/image-20221206173934245.png)
### 代码环境配置
代码环境配置步骤较多,建议按照视频教程操作,下面只列出关键命令,方便大家复制粘贴。
```bash
conda create -n cls-42 python==3.8.5
conda activate cls-42
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3
cd 自己本地的代码目录 (或者在本地代码目录的上方打开cmd)
pip install -r requirements.txt
```
## 数据集
### 数据集的搜集
数据集一般有两种方式获取,一种可以通过自己拍摄或者是爬虫爬取建立自建的数据集,这里在本科毕设和大作业的过程中用的比较多,另外一种是使用公开的数据集,后续我这边也会更新一些视觉相关的数据集,大家可以在这里自行查找:[肆十二的博客_CSDN博客-大作业,目标检测,个人心得领域博主](https://blog.csdn.net/ECHOSON?type=download)
![image-20221206174854041](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/imgs/image-20221206174854041.png)
对于公开数据集,比如医学分割,我们一般从这个网址获取:
```bash
https://www.isic-archive.com/#!/onlyHeaderTop/gallery
```
我们这里提供了一个爬虫的程序,可以帮助大家从百度图片中爬取自己需要的图片,程序的名称是`data_get.py`,使用起来非常方便,大家直接运行程序之后,属于自己想要爬取的图片即可,这段程序我直接放在这里。
```python
# -*- coding: utf-8 -*-
# @Time : 2021/6/17 20:29
# @File : get_data.py
# @Software: PyCharm
# @Brief : 爬取百度图片
import requests
import re
import os
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
name = input('请输入要爬取的图片类别:')
num = 0
num_1 = 0
num_2 = 0
x = input('请输入要爬取的图片数量?(1等于60张图片,2等于120张图片):')
list_1 = []
for i in range(int(x)):
name_1 = os.getcwd()
name_2 = os.path.join(name_1, 'data/' + name)
url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + name + '&pn=' + str(i * 30)
res = requests.get(url, headers=headers)
htlm_1 = res.content.decode()
a = re.findall('"objURL":"(.*?)",', htlm_1)
if not os.path.exists(name_2):
os.makedirs(name_2)
for b in a:
try:
b_1 = re.findall('https:(.*?)&', b)
b_2 = ''.join(b_1)
if b_2 not in list_1:
num = num + 1
img = requests.get(b)
f = open(os.path.join(name_1, 'data/' + name, name + str(num) + '.jpg'), 'ab')
print('---------正在下载第' + str(num) + '张图片----------')
f.write(img.content)
f.close()
list_1.append(b_2)
elif b_2 in list_1:
num_1 =
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于Pyotrch的深度学习物体分类可视化系统源码+预训练模型+详细训练教程.zip (74个子文件)
code
data_split.py 5KB
record
heatmap_resnet50d.png 37KB
torchutils.py 7KB
files
data_test.py 6KB
train_without_val_beit.py 7KB
main.py 10KB
train_without_val.py 7KB
timm_models.py 454B
main_shuili.py 10KB
mv_imgs.py 728B
predict.py 3KB
readme.md 21KB
data_clean.py 2KB
utils
export_onnx.py 2KB
get_flops.py 625B
old
train_alexnet.py 9KB
img2folder.py 1KB
free_gpu.py 152B
window.py 11KB
csv_utils.py 480B
val_alexnet.py 7KB
timm_models.py 515B
requirements.txt 46B
pretrained
resnet50d_ra2-464e36ba.pth 97.82MB
requirements.txt 257B
window.py 9KB
onnxruntime_demo.py 2KB
images
test_imgs
mini
22679076_bdb4c24401_m.jpg 34KB
8181477_8cb77d2e0f_n.jpg 40KB
24781114_bc83aa811e_n.jpg 37KB
6953297_8576bf4ea3.jpg 80KB
5547758_eea9edfd54_n.jpg 28KB
5673551_01d1ea993e_n.jpg 35KB
12240303_80d87f77a3_n.jpg 31KB
11746080_963537acdc.jpg 92KB
27466794_57e4fe5656.jpg 40KB
24459548_27a783feda.jpg 29KB
7355522_b66e5d3078_m.jpg 22KB
5673728_71b8cb57eb.jpg 29KB
11746276_de3dec8201.jpg 67KB
8223949_2928d3f6f6_n.jpg 57KB
10791227_7168491604.jpg 29KB
mini_result
dandelion
8181477_8cb77d2e0f_n.jpg 40KB
7355522_b66e5d3078_m.jpg 22KB
8223949_2928d3f6f6_n.jpg 57KB
tulips
22679076_bdb4c24401_m.jpg 34KB
11746080_963537acdc.jpg 92KB
11746276_de3dec8201.jpg 67KB
10791227_7168491604.jpg 29KB
daisy
5547758_eea9edfd54_n.jpg 28KB
5673551_01d1ea993e_n.jpg 35KB
roses
24781114_bc83aa811e_n.jpg 37KB
12240303_80d87f77a3_n.jpg 31KB
sunflowers
6953297_8576bf4ea3.jpg 80KB
27466794_57e4fe5656.jpg 40KB
24459548_27a783feda.jpg 29KB
5673728_71b8cb57eb.jpg 29KB
506659320_6fac46551e.jpg 47KB
tmp
tmp_upload.png 1.63MB
tmp_upload.jpg 137KB
single_result_vid.jpg 54KB
tmp_upload.jpeg 21KB
single_result.jpg 4KB
upload_show_result.jpg 132KB
up.jpeg 21KB
right.jpeg 27KB
UI
lufei.png 216KB
logo.jpeg 33KB
up.jpeg 28KB
qq.png 151KB
right.jpeg 25KB
train.py 10KB
test.py 7KB
data_get.py 2KB
共 74 条
- 1
资源评论
FL1768317420
- 粉丝: 4313
- 资源: 4730
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Oracle数据库工具安装包(免安装)
- Http上传文件到服务器 php文件
- 114.0.5734.1 Google Chrome谷歌浏览器下载
- meta-llama-3-8b-instruct 的 model-00002-of-00004.safetensors 的2/3
- subversion-1.14.3-6.fc41.x86-64.rpm
- GridLayoutCalculator.zip
- Release QMYSQL driver 6.2.4-msvc2019-x64
- mod-ldap-2.4.54-5.fc37.x86-64.rpm
- mod-ldap-2.4.56-1.fc38.x86-64.rpm
- mod-ldap-2.4.58-7.fc40.x86-64.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功