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

Pytorch框架学习

一 、Pytorch加载数据

这一部分有空再补

二、Dataset代码实战

from torch.utils.data import Dataset
from PIL import Image
import cv2
import osclass Mydata(Dataset):def __init__(self,root_dir,label_dir):self.root_dir=root_dirself.label_dir=label_dir#合并:相当于root_dir目录下的某一类self.path=os.path.join(self.root_dir,self.label_dir)#root_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)#读取图片 需要 from PIL import Imageimg=Image.open(img_item_path)label=self.label_dirreturn img,labeldef __len__(self):#数据集的长度,即有多少张图片return len(self.img_path)root_dir="data/test"
blur_label_dir="blur"
cover_label_dir="cover"
blur_dataset=Mydata(root_dir,blur_label_dir)
cover_dataset=Mydata(root_dir,cover_label_dir)
#两个数据集的集合
train_dataset=blur_dataset+cover_dataset

三、TensorBoard的使用

1、add_scalar()的使用(常用来绘制train/val loss)

#从torch的工具箱(utils)中导出tensorboard这个类
from torch.utils.tensorboard import SummaryWriterwriter=SummaryWriter("logs")#writer.add_image()
#y=x
for i in range(100):writer.add_scalar("y=2x",2*i,i)writer.close()#以上运行后会创建一个logs文件夹#在终端运行以下命令会实现绘制y=x图像
tensorboard --logdir=logs

2、add_image()的使用

#从torch的工具箱(utils)中导出tensorboard这个类
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter("logs")image_path="data/test/blur/1.jpeg"
img_PIL=Image.open(image_path)
#把jpeg类型的图片转换为numpy类型
img_array=np.array(img_PIL)
#输出图片的类型
print(type(img_array))print(img_array.shape)writer.add_image("test",img_array,1,dataformats='HWC')

四、Transforms的使用

torchvision中的transforms

1、ToTensor()的使用
在这里插入图片描述

from torchvision import transforms
from PIL import Image
img_path="data/test/blur/1.jpeg"
img=Image.open(img_path)
#输出图片的类型
#print(img)tensor_trans=transforms.ToTensor()
#将img的图片类型转换为tensor类型
tensor_img=tensor_trans(img)
print(tensor_img)

2、为什么需要Tensor类型?

from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
from PIL import Image
img_path="data/test/blur/1.jpeg"
img=Image.open(img_path)
#输出图片的类型
#print(img)writer=SummaryWriter("logs")tensor_trans=transforms.ToTensor()
#将img的图片类型转换为tensor类型
tensor_img=tensor_trans(img)
print(tensor_img)
writer.add_image("tensor_img",tensor_img)writer.close()

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/18497.html

相关文章:

  • Git 新手完全指南(一):从零开始掌握版本控制
  • 59. 螺旋矩阵 II|从“左闭右开”的圈层模拟入手(附图解与 C++ 实现)
  • 在 Linux 和 Docker 中部署 MinIO 对象存储
  • 使用Spring Retry组件优雅地实现重试
  • 【Python】利用heapq 模块实现一个按优先级排序的队列
  • 数字化图书管理系统设计实践(java)
  • CorrectNav——基于VLM构建带“自我纠正飞轮”的VLN:通过「视觉输入和语言指令」预测导航动作,且从动作和感知层面生成自我修正数据
  • 学习嵌入式的第二十二天——数据结构——双向链表
  • 永磁同步电机谐波抑制算法(13)——传统预测控制与传统谐波抑制的碰撞
  • week2-[二维数组]排队
  • MySQL 50 道经典练习题及答案
  • Java毕业设计选题推荐 |基于SpringBoot+Vue的知识产权管理系统设计与实现
  • Effective C++ 条款52:写了placement new也要写placement delete
  • ES常用查询命令
  • SQL详细语法教程(七)核心优化
  • ubuntu系统上的conda虚拟环境导出方便下次安装
  • PiscCode使用MediaPipe Face Landmarker实现实时人脸特征点检测
  • YOLO11 到 C++ 落地全流程:ONNX 导出、NMS 判别与推理实战
  • Java 通过 m3u8 链接下载所有 ts 视频切片并合并转换为 mp4 格式
  • 《GPT-OSS 模型全解析:OpenAI 回归开源的 Mixture-of-Experts 之路》
  • 深入理解MySQL Ⅳ -- SQL性能分析工具
  • 文件操作NIO Files的简单使用
  • InfluxDB 查询性能优化实战(一)
  • SCAU学习笔记 - 自科三面前端方向实战演示
  • Disruptor核心接口EventHandler解析
  • 【Techlog】01入门-井筒数据整合软件的基本认识
  • C5.6:双电源发射极偏置、特殊类偏置、PNP型偏置电路
  • ODPS 十五周年实录 | 为 AI 而生的数据平台
  • 机器学习(Machine Learning, ML)
  • 项目1其二(验证码、jwt)