pytorch(b站小土堆学习笔记P1-P15)

P3. Python学习中的两大法宝函数(当然也可以用在PyTorch)

import torch#查看pytorch有哪些指令
print(dir(torch))
print(dir(torch.cuda))
#查看每条指令怎么用
help(torch.cuda.is_available)

P4. PyCharm及Jupyter使用及对比

P5 dataset和dataloader

P6. Dataset类代码实战

import osfrom PIL import Image
from torch.utils.data import Dataset# dataset有两个作用:1、加载每一个数据,并获取其label;2、用len()查看数据集的长度
class MyData(Dataset):def __init__(self, root_dir, label_dir):  # 初始化,为这个函数用来设置在类中的全局变量self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir,self.label_dir)  # 单纯的连接起来而已,背下来怎么用就好了,因为在win下和linux下的斜线方向不一样,所以用这个函数来连接路径self.img_path = os.listdir(self.path)  # img_path 的返回值,就已经是一个列表了def __getitem__(self, idx):  # 获取数据对应的 labelimg_name = self.img_path[idx]  # img_name 在上一个函数的最后,返回就是一个列表了img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)  # 这行的返回,是一个图片的路径,加上图片的名称了,能够直接定位到某一张图片了img = Image.open(img_item_path)  # 这个步骤看来是不可缺少的,要想 show 或者 操作图片之前,必须要把图片打开(读取),也就是 Image.open()一下,这可能是 PIL 这个类型图片的特有操作label = self.label_dir  # 这个例子中,比较特殊,因为图片的 label 值,就是图片所在上一级的目录return img, label  # img 是每一张图片的名称,根据这个名称,就可以使用查看(直接img)、print、size等功能# label 是这个图片的标签,在当前这个类中,标签,就是只文件夹名称,因为我们就是这样定义的def __len__(self):return len(self.img_path)  # img_path,已经是一个列表了,len()就是在对这个列表进行一些操作if __name__ == '__main__':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# runfile('E:/pythonProject/learn_pytorch/read_data.py')

P7/8. TensorBoard的使用 

用于数据可视化

运行方式

# 切换到 Logs的上一层目录中
tensorboard --logdir=logs --port=6007

demo1

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("logs")# writer.add_image()
# writer.add_scalar()for i in range(100):writer.add_scalar("y=2x",2*i,i)
writer.close()

 

 demo2

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
from torchvision import transformswriter = SummaryWriter("../logs")
img = Image.open('../images/pytorch.png')
# img.show()
print(img)trans_tensor = transforms.ToTensor()
img_tensor = trans_tensor(img)
writer.add_image('ToTensor',img_tensor)trans_norm =  transforms.Normalize([2, 3, 5, 10], [0.5, 0.5, 0.5, 0.5])
img_norm = trans_norm(img_tensor)
writer.add_image("Normalize",img_norm,2) #2,表示第2步
writer.close()

P10/P11/P12/P13 Transform(处理图片 先忽略) 

数据集下载

用好pytorch官网

 

#下载路径为../data;第二个参数表示现在训练集;第三个参数表示下载成tensor类型,最后将download设置为true
train_data = torchvision.datasets.CIFAR10(root="../data", train=True, transform=torchvision.transforms.ToTensor(),download=True)
#,train=False  表示下载测试集
test_data = torchvision.datasets.CIFAR10(root="../data", train=False, transform=torchvision.transforms.ToTensor(),download=True)

 P15 DataLoader加载数据集
        加载数据集方式主要使用的是DataLoader;我们不管是自己制作的数据集,还是从网上下载的数据集,当我们把这些数据送到神经网络训练的时候,我们必须用一些特定的方式送给神经网络。这便是DataLoader的作用,比如最常见的batch_size。有时数据集非常的大几万甚至几十万张图片,一张一张送进送进神经网络效率太低,所以我们要成批(batch_size)的送给神经网络。还有我们是否对数据集打乱等等。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/119517.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法】滑动窗口

滑动窗口应用场景 关键词: 满足xxx条件(计算结果,出现次数,同时包含) 最长/最短 子串/子数组/子序列 例如:长度最小的子数组 滑动窗使用思路(寻找最长) 核心:左右双指…

2021年06月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:逆波兰表达式 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 …

基于MQTT协议的物联网关

随着工业领域的不断发展,数字化转型已经成为企业迈向未来的必由之路。在这个数字化浪潮中,HiWoo Box以其强大的功能和创新的设计,在工业物联网领域被越来越多的人所熟知。特别是其基于MQTT协议的物联网关能力,也为企业实现智能化数…

无门槛访问ChatGPT升级版-数据指北AI

大家好,我是脚丫先生 (o^^o) 给小伙伴们介绍ChatGPT升级版不需要任何门槛,不需要单独搞账号,只要邮箱登录的方式,即可访问平台,以用户体验为首要,让所有人都能无门槛的使用目前市面上最强大的AI智能聊天&a…

ubuntu20.04+ROS noetic在线运行单USB双目ORB_SLAM

双目摄像头主要有以下几种,各有优缺点。 1.单USB插口,左右图像单独输出2.双USB插口,左右图像单独输出(可能存在同步性问题)3.双USB插口,左右图像合成输出4.单USB插口,左右图像合成输出 官方版…

Java实现获取微信小程序scheme码报错

如标题所见,使用Java获取小程序scheme时除了出现文档中的常见错误,我将我调试的时候遇到的错误和解决方式分享出来方便大家少花一部分时间解决该问题。(往下划有结论节省时间)。 获取scheme码之前需要先获取access_token&#xff…

使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言 当我们使用 Postman 进行接口测试时,对于简单的不需要处理的接口,直接请求即可,但是对于需要处理的接口,如需要转码、替换值等,则就麻烦一些,一般我们都是先手动把修改好的值拷贝到请求里再进行请…

Jaeger的经典BUG原创

前端,笔者在使用Jaeger进行Trace监控的时候,当数据量增大到一定数量级时,出现了一次CPU暴增导致节点服务器挂了的经典案例,这里对案例进行一个简单的抽象,供大家参考: 首先通过pprof对耗时的函数进行定位&…

spacy安装旧版本en_core_web_sm的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布

一、MQTT介绍 1.1 什么是MQTT? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于…

排序算法学习记录-快速排序

快速排序 快速排序关键在于确定一个中间值,使得小于这个中间值的数在左边,大于这个中间值的数在右边。那么中间值该如何确定呢?有以下几种做法 首元素,也就是arr[l]尾元素,也就是arr[r]中间元素,也就是ar…

JavaScript中的事件委托(event delegation)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript事件委托⭐ 事件冒泡(Event Bubbling)⭐ 事件委托的优点⭐ 如何使用事件委托⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启…

CocosCreator3.8研究笔记(二)windows环境 VS Code 编辑器的配置

一、设置文件显示和搜索过滤步骤 为了提高搜索效率以及文件列表中隐藏不需要显示的文件, VS Code 需要设置排除目录用于过滤。 比如 cocoscreator 中,编辑器运行时会自动生成一些目录:build、temp、library, 所以应该在搜索中排除…

电商项目part10 高并发缓存实战

缓存的数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 先读缓存数据,缓存数据有,则立即返回结果;如果没有数据,则从数据库读数据,并且把…

怎么把pdf压缩的小一点?

怎么把pdf压缩的小一点?在我们日常的学习和工作中,PDF文件是一个非常常见和有用的文件格式,并且受到很多小伙伴的喜欢。有时候,一些PDF文件可能会很大,造成pdf文件较大的原因其实很明确,主要是因为pdf文件中…

【LeetCode算法系列题解】第46~50题

CONTENTS LeetCode 46. 全排列(中等)LeetCode 47. 全排列 II(中等)LeetCode 48. 旋转图像(中等)LeetCode 49. 字母异位词分组(中等)LeetCode 50. Pow(x, n)(中等&#xf…

华为云云服务器评测 | 从零开始:云耀云服务器L实例的全面使用解析指南

文章目录 一、前言二、云耀云服务器L实例要点介绍2.1 什么是云耀云服务器L实例2.2 云耀云服务器L实例的产品定位2.3 云耀云服务器L实例优势2.4 云耀云服务器L实例支持的镜像与应用场景2.5 云耀云服务器L实例与弹性云服务器(ECS)区别 三、购买与配置云耀云…

【100天精通Python】Day51:Python 数据分析_数据分析入门基础与Anaconda 环境搭建

目录 1 科学计算和数据分析概述 2. 数据收集和准备 2.1 数据收集 2.1.1 文件导入: 2.1.2 数据库连接: 2.1.3 API请求: 2.1.4 网络爬虫: 2.2 数据清洗 2.2.1 处理缺失值: 2.2.2 去除重复值: 2.2…

dlopen “libnvcuvid.so“ failed!

在使用NVIDIA DALI库进行视频数据处理时,出现了以上打开libnvcuvid.so动态库错误的问题,如下图所示: libnvcuvid.so是使用CUDA进行硬编解码需要的一个库,使用NVIDIA DALI进行视频处理时会依赖它。 本人是在Docker容器中运行的程序…

langchain介绍之-Prompt

LangChain 是一个基于语言模型开发应用程序的框架。它使得应用程序具备以下特点:1.数据感知:将语言模型与其他数据源连接起来。2.代理性:允许语言模型与其环境进行交互 LangChain 的主要价值在于:组件:用于处理语言模型…