当前位置: 首页 > news >正文

PyTorch深度学习入门记录3

两大法宝

将PyTorch比作一个工具箱

dir()函数:了解工具箱里有什么东西

实战

dir(torch.cuda)
Out[10]: 
['Any','BFloat16Storage','BFloat16Tensor','BoolStorage',
...]

help()函数:了解工具的用法和作用(注意help内函数去掉())

help(torch.cuda.is_available)
Help on function is_available in module torch.cuda:
is_available() -> boolReturn a bool indicating if CUDA is currently available.

启动jupyter notebook时注意若pytorch位于D盘,进去jupyter notebook时要在后面加上D:

数据加载

pycharm项目终端安装opencv(然而视频并没有用到)

数据的一些读取方式

from PIL import Image
img_path = "D:\\PyTorch_learning\\dataset\\train\\ants\\0013035.jpg"
img = Image.open(img_path)
img.size
img.show()

实战代码

数据集下载链接

from torch.utils.data import Dataset  # 从PyTorch导入Dataset类,用于创建自定义数据集
from PIL import Image  # 从PIL库导入Image类,用于处理图像
import os  # 导入os模块,用于处理文件路径class MyData(Dataset):  # 定义一个名为MyData的类,继承自Datasetdef __init__(self, root_dir, label_dir):  # 初始化方法,接收两个参数:根目录和标签目录self.root_dir = root_dir  # 保存根目录到类的实例变量self.label_dir = label_dir  # 保存标签目录到类的实例变量self.path = os.path.join(self.root_dir, self.label_dir)  # 拼接根目录和标签目录,得到完整路径self.img_path = os.listdir(self.path)  # 获取该路径下所有文件的列表,保存为图像路径列表def __getitem__(self, idx):  # 定义获取元素的方法,接收索引idx作为参数img_name = self.img_path[idx]  # 根据索引获取图像文件名# 拼接完整的图像文件路径img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)img = Image.open(img_item_path)  # 打开图像文件,得到图像对象label = self.label_dir  # 标签就是当前的标签目录名(ants或bees)return img, label  # 返回图像和对应的标签def __len__(self):  # 定义获取数据集长度的方法return len(self.img_path)  # 返回图像路径列表的长度,即图像的数量root_dir = "dataset/train"  # 定义根目录路径:数据集的训练集目录
ants_label_dir = "ants"  # 定义蚂蚁图像的标签目录名
bees_label_dir = "bees"  # 定义蜜蜂图像的标签目录名
ants_dataset = MyData(root_dir, ants_label_dir)  # 创建蚂蚁数据集实例
bees_dataset = MyData(root_dir, bees_label_dir)  # 创建蜜蜂数据集实例train_dataset = ants_dataset + bees_dataset  # 将蚂蚁和蜜蜂数据集合并成一个训练数据集img, label = train_dataset[123]
img.show() # 展示蚂蚁图片
print(label)img, label = train_dataset[124]
img.show() # 展示蜜蜂图片
print(label)

http://www.dtcms.com/a/301310.html

相关文章:

  • 两数之和 II - 输入有序数组-leetcode
  • 【深度学习系列82】joyagent上手体验
  • 五、搭建springCloudAlibaba2021.1版本分布式微服务-gateway网关
  • 基于大模型的预训练、量化、微调等完整流程解析
  • 【思维链(CoT)技术深度解析】从理论到实践的革命性推理方法
  • pytest中的参数化
  • Python-初学openCV——图像预处理(三)
  • 相对路径遍历(CWE-22)
  • 【杂谈】-被引用即被看见:生成式AI如何改写内容规则
  • vscode找不到python解释器的解决方案
  • 8. 若依框架的AjaxResult
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现PCB上二维码检测识别(C#代码UI界面版)
  • 欢乐的周末 - 华为OD统一考试(JavaScript 题解)
  • RAG(检索增强生成)
  • Vue 四个map的使用方法
  • MySQL读写分离部署
  • 【YOLO系列】YOLOv1详解:模型结构、损失函数、训练方法及代码实现
  • 前端面试专栏-前沿技术:31.Serverless与云原生开发
  • Spring AI 项目实战(二十一):Spring Boot + AI +DeepSeek驱动的智能题库系统(附完整源码)
  • Linux-文件与文本管理
  • 【语义分割】记录2:yolo系列
  • Java面试实战:安全框架与大数据技术深度解析
  • 代码随想录算法训练营二十八天|动态规划part01
  • C语言自定义数据类型详解(四)——联合体
  • 欧拉图与欧拉回路
  • Windows---动态链接库Dynamic Link Library(.dll)
  • 裴蜀定理应用
  • Ubuntu Linux 如何配置虚拟内存 —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录8
  • GRPO强化学习缓解多模态大模型OCR任务的幻觉思路及数据生成思路
  • 【Oracle】Oracle分区表“排雷“指南:当ORA-14400错误找上门时如何优雅应对