Deep Learning
===
# 1. Leaf_classification_Selfnet.py
## 1.1 介绍说明
使用Pytorch搭建**AlexNet**模型结构(非预训练模型),并训练该模型用于Flavia数据集的图片分类。
## 1.2 训练集和验证集文件的划分
train_val_split(imgdir, traindir, valdir, split_rate=0.8)函数的作用是将数据集文件按一定比例划分为训练集和验证集,其中参数**img_dir**为数据集文件路径,**train_dir**为划分后的训练集文件保存路径,**val_dir**为划分后的验证集文件保存路径,**split_rate**为训练集和验证集的划分比例(默认为0.8)。
## 1.3 数据处理和图像增强
1. train_data_transforms、val_data_transforms和test_data_transforms分别定义了训练集、验证集和测试集图片的预处理操作,其中包含了图像压缩、图像增强和数据归一化等操作。
2. train_data_process(train_data_path)、val_data_process(val_data_path)和test_data_process(test_data_path)函数的作用分别是对训练集、验证集和测试集图片进行预处理,并打包成多个batch用于后面训练、验证和测试。其中Data.DataLoader(train_data, batch_size=32, shuffle=True, num_workers=0)函数中的参数**batach_size**为每个batch中包含的图片数量,**shuffle**为是否将数据随机打乱,**num_workers**为加载batch数据的进程数(Windows中num_workers=0,否则会出错)。
## 1.4 模型搭建
ConvNet(nn.Module)类定义了自己搭建的卷积神经网络模型结构,以及数据的前向传播过程。
## 1.5 模型训练
1. train_model(model, traindataloader, valdataloader, criterion, device, optimizer, scheduler, num_epochs=25)函数定义了模型的训练和验证过程,其中参数**model**为定义的网络模型,**traindataloader**为训练集数据,**valdataloader**为验证集数据,**criterion**为使用的损失函数,**device**为使用的运算平台('cuda'或'cpu'),**optimizer**为超参数的优化算法,**scheduler**为学习率的调整方式,**num_epochs**为训练的epoch数。
2. test_model(model, testdataloader, label, device)函数定义了模型的测试过程,其中参数**model**为训练好的网络模型,**testdataloader**为测试集数据,**label**为测试集图片的标签,**device**为使用的运算平台('cuda'或'cpu')。
3. train_model_process(myconvnet)函数的作用是获取上述定义的参数,并分别调用train_model()函数和test_model()函数对模型进行训练和测试。
# 2. Leaf_classification_Alexnet.py
## 2.1 介绍说明
使用Pytorch搭建**AlexNet**模型结构(非预训练模型),并训练该模型用于Flavia数据集的图片分类。
## 2.2 训练集和验证集文件的划分
train_val_split(imgdir, traindir, valdir, split_rate=0.8)函数的作用是将数据集文件按一定比例划分为训练集和验证集,其中参数**img_dir**为数据集文件路径,**train_dir**为划分后的训练集文件保存路径,**val_dir**为划分后的验证集文件保存路径,**split_rate**为训练集和验证集的划分比例(默认为0.8)。
## 2.3 数据处理和图像增强
1. train_data_transforms、val_data_transforms和test_data_transforms分别定义了训练集、验证集和测试集图片的预处理操作,其中包含了图像压缩、图像增强和数据归一化等操作。
2. train_data_process(train_data_path)、val_data_process(val_data_path)和test_data_process(test_data_path)函数的作用分别是对训练集、验证集和测试集图片进行预处理,并打包成多个batch用于后面训练、验证和测试。其中Data.DataLoader(train_data, batch_size=32, shuffle=True, num_workers=0)函数中的参数**batach_size**为每个batch中包含的图片数量,**shuffle**为是否将数据随机打乱,**num_workers**为加载batch数据的进程数(Windows中num_workers=0,否则会出错)。
## 2.4 模型搭建
AlexNet(nn.Module)类定义了AlexNet的模型结构,以及数据的前向传播过程。
## 2.5 模型训练
1. train_model(model, traindataloader, valdataloader, criterion, device, optimizer, scheduler, num_epochs=25)函数定义了模型的训练和验证过程,其中参数**model**为定义的网络模型,**traindataloader**为训练集数据,**valdataloader**为验证集数据,**criterion**为使用的损失函数,**device**为使用的运算平台('cuda'或'cpu'),**optimizer**为超参数的优化算法,**scheduler**为学习率的调整方式,**num_epochs**为训练的epoch数。
2. test_model(model, testdataloader, label, device)函数定义了模型的测试过程,其中参数**model**为训练好的网络模型,**testdataloader**为测试集数据,**label**为测试集图片的标签,**device**为使用的运算平台('cuda'或'cpu')。
3. train_model_process(myconvnet)函数的作用是获取上述定义的参数,并分别调用train_model()函数和test_model()函数对模型进行训练和测试。
## 2.6 实验结果
![alexnet](https://user-images.githubusercontent.com/39607836/149730815-08689dd4-268b-4004-9d46-049d11106cca.png)
# 3. Leaf_classification_GoogLeNet.py
## 3.1 介绍说明
使用Pytorch搭建**GoogLeNet**模型结构(非预训练模型),并训练该模型用于Flavia数据集的图片分类。
## 3.2 训练集和验证集文件的划分
train_val_split(imgdir, traindir, valdir, split_rate=0.8)函数的作用是将数据集文件按一定比例划分为训练集和验证集,其中参数**img_dir**为数据集文件路径,**train_dir**为划分后的训练集文件保存路径,**val_dir**为划分后的验证集文件保存路径,**split_rate**为训练集和验证集的划分比例(默认为0.8)。
## 3.3 数据处理和图像增强
1. train_data_transforms、val_data_transforms和test_data_transforms分别定义了训练集、验证集和测试集图片的预处理操作,其中包含了图像压缩、图像增强和数据归一化等操作。
2. train_data_process(train_data_path)、val_data_process(val_data_path)和test_data_process(test_data_path)函数的作用分别是对训练集、验证集和测试集图片进行预处理,并打包成多个batch用于后面训练、验证和测试。其中Data.DataLoader(train_data, batch_size=32, shuffle=True, num_workers=0)函数中的参数**batach_size**为每个batch中包含的图片数量,**shuffle**为是否将数据随机打乱,**num_workers**为加载batch数据的进程数(Windows中num_workers=0,否则会出错)。
## 3.4 模型搭建
1. Inception(nn.Module)类定义了Inception模块结构。
2. GoogLeNet()函数定义了GoogLeNet的网络结构,其中由多个Inception模块构成。
## 3.5 权重初始化
weights_initialize(model)函数的作用是对网络模型中卷积层的权重使用Kaiming初始化。
## 3.6 模型训练
1. train_model(model, traindataloader, valdataloader, criterion, device, optimizer, scheduler, num_epochs=25)函数定义了模型的训练和验证过程,其中参数**model**为定义的网络模型,**traindataloader**为训练集数据,**valdataloader**为验证集数据,**criterion**为使用的损失函数,**device**为使用的运算平台('cuda'或'cpu'),**optimizer**为超参数的优化算法,**scheduler**为学习率的调整方式,**num_epochs**为训练的epoch数。
2. test_model(model, testdataloader, label, device)函数定义了模型的测试过程,其中参数**model**为训练好的网络模型,**testdataloader**为测试集数据,**label**为测试集图片的标签,**device**为使用的运算平台('cuda'或'cpu')。
3. train_model_process(myconvnet)函数的作用是获取上述定义的参数,并分别调用train_model()函数和test_model()函数对模型进行训练和测试。
## 3.7 实验结果
![Googlenet](https://user-images.githubusercontent.com/39607836/149730925-07812d10-8a97-4a53-9f32-f47d229c69d3.png)
# 4.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
python实现基于传统机器学习算法和深度学习对Flavia叶片数据集进行分类源码.zip主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载即用确保可以运行! python实现基于传统机器学习算法和深度学习对Flavia叶片数据集进行分类源码.zip主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载即用确保可以运行!python实现基于传统机器学习算法和深度学习对Flavia叶片数据集进行分类源码.zip主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载即用确保可以运行!python实现基于传统机器学习算法和深度学习对Flavia叶片数据集进行分类源码.zip主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,
资源推荐
资源详情
资源评论
收起资源包目录
传统机器学习算法和深度学习,对Flavia叶片数据集进行分类.zip (12个子文件)
主-main
deep learning
Leaf_classification_Alexnet.py 16KB
Leaf_classification_VGG11.py 17KB
CAM_Visualization.py 31KB
Leaf_classification_GoogLeNet.py 18KB
Leaf_classification_HRnet.py 37KB
Leaf_classification_Selfnet.py 18KB
README.md 18KB
Leaf_classification_Resnet18.py 18KB
machine learning
Leaf_data_acquisition.py 7KB
Leaf_classification_ML.py 4KB
README.md 2KB
README.md 76B
共 12 条
- 1
资源评论
程序员张小妍
- 粉丝: 1w+
- 资源: 3252
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功