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.hqwc.cn/news/103783.html

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

相关文章

MySQL 连接查询和存储过程

一、连接查询 mysql的连接查询,通常都是将来自两个或多个表的记录行结合起来,基于这些表之间的共同字段,进行数据的拼接 首先,要确定一个主表作为结果集,然后将其它表的行有选择性的连接到选定的主表结果上&#xff…

C动态分配

动态分布与静态发布: 静态分配 1、 在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。int a [10] 2、 必须事先知道所需空间的大小。 3、 分配在栈区或全局变量区,一般以数组的形式。 4、 按计划分配。 动态分配 1、在程序运…

企业架构LNMP学习笔记7

PHP介绍: HTML:超文本标记语言 http: 超文本传输协议 端口80 浏览器将html代码解析成web页面。 PHP:超文本预处理器。后端语言开发,页面上需要动态改变修改的,需要连接数据库查询数据,转为html。 主要…

3D印刷电路板在线渲染查看工具

从概念上讲,这是有道理的,因为PCB印制电路板上的走线从一个连接到下一个连接的路线基本上是平面的。 然而,我们生活在一个 3 维世界中,能够以这种方式可视化电路以及相应的组件,对于设计过程很有帮助。本文将介绍KiCad…

MDK-Keil AC6 Compiler屏蔽特定警告

最近在使用STM32CubeMX生成MDK工程是,使用了 AC6 版本的编译器进行编译代码,然后发现了一些警告,但是在 AC5 版本下编译又正常。于是研究了下怎么屏蔽特定的警告,这里记录一下。 1. Keil AC6屏蔽特定警告 遇到的警告如下&#x…

【计算机网络】HTTP(上)

文章目录 1.HTTP概念2. URLurlencode 和 urldecode转义规则 3. HTTP的宏观理解HTTP的请求HTTP的响应 4. 见一见HTTP请求和响应请求报头 1. 模拟一个简单的响应response响应报头 2. 从路径中获取内容ReadFile函数的实现 3.不同资源进行区分反序列化的实现ReadOneLine函数的实现P…

Delphi、C# 和 TypeScript 之父 Anders Hejlsberg(安德斯·海尔斯伯格,海神)赶潮AI

自2022年11月ChatGPT横空出世,一波由AIGC引发的热潮轰轰烈烈持续传播。 全球各国政府及大型互联网企业都在积极布局人工智能解决方案,抢占人工智能高地,推动人工智能产业健康发展。 Delphi、C# 和 TypeScript 之父,位列Microsof…

flink的物理DataFlow图及Slot处理槽任务分配

背景 在flink中,有几个比较重要的概念,逻辑DataFlow图,物理DataFlow图以及处理槽执行任务,本文就来讲解下这几个概念 概念详解 假设有以下代码:数据源和统计单词算子的并行度是2,数据汇算子的并行度是1&…

HotSpot垃圾收集算法实现细节

文章目录 根节点枚举安全点安全区域记忆集与卡表写屏障三色标记 根节点枚举 在可达性分析算法中,由于GC Roots众多,所以在从GC Roots集合中进行引用链查找时会耗费大量时间。 迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线…

​怎么安全无损地将操作系统转移到固态硬盘?

为什么需要转移系统到固态硬盘? 现如今,许多用户想要将自己的操作系统转移到固态硬盘,这是为什么呢?我们在下面向大家简单地介绍了一下迁移系统的优势: ​提升计算机性能:硬盘(HDD…

储能直流侧计量表DJSF1352

安科瑞 华楠 具有CE/UL/CPA/TUV认证 DJSF1352-RN导轨式直流电能表带有双路直流输入,主要针对电信基站、直流充电桩、太阳能光伏等应用场合而设计,该系列仪表可测量直流系统中的电压、电流、功率以及正反向电能等。在实际使用现场,即可计量总…

Golang-GJSON 快速而简单的方法来从 json 文档获取值

GJSON 是一个 Go 包,它提供了一种快速而简单的方法来从 json 文档获取值。它具有单行搜索、点符号路径、迭代和解析 json 行等功能。 GJSON 也可用于Python和Rust 入门 安装中 要开始使用GJSON 请安装 Go 并运行 go get : $ go get -u github.com/ti…