1.pytorch加载收数据(B站小土堆)

数据的加载主要有两个函数:

1.dataset整体收集数据:提供一种方法去获取数据及其label,告诉我们一共有多少数据(就是自开始把要的数据和标签都收进来)

2.**dataloader,**后面传入模型时候,每次录入数据的方法

※想使用这两个函数,要引入pytorch库,并且从torch"工具箱"utils的data模块中拿出函数

python 复制代码
import pytorch
from torch.utils.data import Dataset,DataLoader


Dataset

1.官网解释:

2.准备工作/相关工作解释:

1.安装opencv

(注意要安装opencv,怎么安装?)

无论是opencv还是tensorflow啥的,都要先进入虚拟化环境

(anconda创建虚拟环境:conda create --name ×× python=3.8)

(激活、进入环境:conda activate ××)

安装opencv:conda install ××(这里是opencv-python)
注:什么是opencv,opencv和pillow(PIL):

OpenCV(Open Source Computer Vision Library)和 PIL(Python Imaging Library)都是用于图像处理和计算机视觉任务的库(本质上是同级的关系,但是opencv适用于更复杂的图像处理),但它们有一些区别和各自的优势:

  1. 功能特点

    • PIL 主要专注于基本的图像处理任务,如图像加载、保存、调整大小、旋转、裁剪等,以及一些简单的滤波和颜色空间转换。
    • OpenCV 不仅提供了图像处理功能,还提供了更多复杂的计算机视觉算法,如特征检测、目标识别、摄像头捕获、视频处理等。
  2. 性能

    • OpenCV 通常在处理大型图像和实时视频时表现更优,因为它经过了高度优化,采用了底层优化的C/C++代码实现,并且支持多线程处理。
    • PIL 在一些简单的图像处理任务上可能更轻量级和简单,但对于复杂的任务和大规模数据处理,性能可能不如 OpenCV。
  3. 语法和接口

    • PIL 的语法相对简单易懂,适合初学者和快速开发。
    • OpenCV 的 API 更庞大和复杂,但也更灵活,可以进行更多种类的图像处理和计算机视觉任务。
  4. 应用场景

    • 如果只需要进行简单的图像处理,如调整大小、转换格式等,而且希望代码简单易懂,可以选择使用 PIL。
    • 如果需要进行复杂的计算机视觉任务,如目标检测、特征提取、实时视频处理等,或者需要高性能和灵活性,可以选择使用 OpenCV。

2.对图片的操作------PIL库的image模块(控制台写代码就是一步一步的看运行的效果,在总面板上就是写完整个完整代码,然后看运行结果)

1.为方便,将图片文件引入改代码文件夹(文件夹 直接操作即可)

2.在控制台中引入pillow库(PIL)中的Image模块 。"from PIL import Image"

3.写入图片路径,用变量"img_path"接收,注意路径的写法: 如:" img_path="D:\\demo\\images\\0.jpg" "

复制后写入控制台,然后将单斜杠"\"都写成"\\"

4.打开此路径 "img=Image.open(img_path)"

5.对图片进行相应的操作,如img.size ;img.show()等

3.将图片名称写成列表(总体获取图片名称)

1.引入os库:import os

2.写入图片文件夹地址

(这里不用变双斜杠)root="D:\demo..."

3.用os中的listdir将该文件夹下的路径都变为列表形式 img_list=os.listdir(root)

4.直接用用列表名查看对应的名称即可 img_list[0]

4.将路径和"标签"进行拼接 ------os.path.join(A,B)

1.写入标签 img_label="plant diseases"(不过一般这里是所存在的文件夹名称,因为后序很可能用到相应的操作,如果单纯随意出来的一个名称,后序可能无法执行)

2.拼接(注意,拼接的是标签和文件夹,不是上面图片路径的列表) lastpath=os.path.join(root,img_label)

常见的写法是:root="D:\demo\cnn\AgriculturalDisease_trainingset"或者用

label_dir="image"

例2:拼接出具体图片地址用列表w)

3.整个dataset函数:

总训练集可以直接用+来拼接,但是使用加号的的前提是,在mydataset函数中正确写入------len------函数,注意这个len函数是图像列表的长度,不是某一图像名称的长度

控制台看效果:

具体实例化:



其他:

1.打开jupyter notebook的方法:

(base) PS C:\Users\WZS-CN> conda activate pytorch_learn

(pytorch_learn) PS C:\Users\WZS-CN> jupyter notebook

2.函数中变量写法------"self.××"是啥意思

就是本质上函数里面定义的变量是局部变量,不可以跨函数使用,但是我需要库函数使用,让她类似于一个函数内部定义的全局变量,那么就用"self.××"

在总面板上写的代码,可以在控制台一步一步写出然后运行,但是相应的变量名中不会有self出现,这种在控制台进行验证会方便我们观察,相当于就是在def中写函数,在控制台写相应的具体实现来验证函数

相关推荐
qh0526wy14 分钟前
pyqt5冻结+分页表
开发语言·python·qt
井底哇哇20 分钟前
Apline linux 安装scikit-learn 过程记录
python·机器学习·scikit-learn
Debroon29 分钟前
AdaptFormer:用2%参数,实现视觉Transformer的高效迁移学习,性能超越全量微调(SSv2提升10%,HMDB51提升19%)
深度学习·transformer·迁移学习
海棠AI实验室42 分钟前
机器学习基础算法 (二)-逻辑回归
人工智能·python·机器学习
临渊羡鱼的猫1 小时前
基础优化方法
人工智能·深度学习·机器学习
Tester_孙大壮1 小时前
Python爬虫技术科普
开发语言·爬虫·python
诚威_lol_中大努力中2 小时前
关于pytorch3d的安装
人工智能·pytorch·python
GISer_Jing2 小时前
神经网络、深度学习、卷积神经网络
python
onejason2 小时前
深度解析:利用Python爬虫获取亚马逊商品详情
前端·python
小王子10243 小时前
数据结构与算法Python版 二叉查找树
数据结构·python·算法·二叉查找树