Transforms的学习以及地址问题

news2024/9/20 8:43:39

一、地址问题

在学习Dataset类的实战与Tensboard的学习中,有出现一些地址的问题:

1、相对地址

相对地址的使用:

使用于在从端口中,打开TensorBoard的页面。使用的就是相对地址;例如:

tensorboard --logdir=learningplan1/logs --port=6007

但是在pycharm中,对图片的读取,例如下述代码:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
# writer的使用
# 创建实例
writer = SummaryWriter("logs")
image_path = "D:/test pytorch/train/ants_image/6240329_72c01e663e.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)

# 存储位置在logs
# 使用如下的两种方法
writer.add_image("train", img_array, 1, dataformats='HWC')

# 标量
for i in range(100):

    writer.add_scalar("y = x", 3*i, i)

writer.close()

其中的image_path使用的就是绝对地址,如果不使用绝对地址,则会出现如下的报错:

[errno 2] no such file or directory: 'd:\\test pytorch\\learningplan1\\dataset\\train\\ants_image\\0013035.jpg'

找不到打不开文件,并且报错。

二、transforms的学习

2.1、对图片的读取

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms


img_path = "D:/test pytorch/train/ants_image/0013035.jpg"
img = Image.open(img_path)

Writer = SummaryWriter("logs")


tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)

Writer.add_image("tensor_img", tensor_img)
Writer.close()

使用终端来查看:

tensorboard --logdir=learningplan1/logs

结果:

2.2、Totensor的学习:

# totensor的使用
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("Totensor", img_tensor)

实现将图片转换为tensor型

2.3、 归一化的使用

# Normalize
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([0.7, 0.7, 0.7], [0.7, 0.7, 0.7])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm, 2)
writer.close()

 实现的效果:

读取到的图片转化为Tensor类型;

[0.3,0.3,0.3]的参数:

[0.5,0.5,0.5]参数:

[0.7,0.7,0.7]参数:

归一化的作用,改变模型参数,使得模型呈现出不同的形态。

2.4 Resize()的使用

# compose resize_2
trans_resize_2 = transforms.Resize(512)
# PIL - PIL - tensor
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)

2.5 图片的随机裁剪:

trans_random = transforms.RandomCrop([512,1000]) # 长500.宽1000
trans_compose_2=transforms.Compose([trans_random, trans_totensor])# 需要的是数组
for i in range(10):
    img_crop = trans_compose_2(img)
    writer.add_image("RandpomCrop", img_crop, i) #展示在tensorboard中

实现的效果:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL创建与删除表

一、创建表 1.1 使用DDL语句创建表 CREATE TABLE 表名(列名 类型,列名 类型......); character set:如不指定则为所在数据库字符集collate:如不指定则为所在数据库校对规则 查看表 show tables; 1.2 使用Navicat创建表 二、删除表 2.1 使用DDL语句删除…

chapter08-面向对象编程(继承)day08

目录 287-继承原理图 288-继承快速入门 289-继承使用细节1 290-继承使用细节2 291-继承使用细节3 292-继承使用细节4 293-继承使用细节5 294-继承本质详解(重要) 287-继承原理图 288-继承快速入门 289-继承使用细节1 子类继承了所有的属性和方法…

特拉维斯凯尔西花了5位数给女友泰勒斯威夫特买了一份令人惊讶的贺礼

说实话,我们已经记不清特拉维斯凯尔西今年为泰勒斯威夫特花了多少钱了。据报道,他花了近 10 万美元购买意大利服装和甜食,现在,据报道,他为斯威夫特购买鲜花花费了五位数。 消息人士告诉媒体,凯尔西从 Mil…

超分之最近邻插值、线性插值、双线性插值、双三次插值原理

文章目录 插值与图像插值不同的插值方法最近邻域插值(Nearest Neighbor Interpolation) 线性插值 (Linear Interpolation)双线性插值 (Bilinear Interpolation) 双三次插值 (Bicubic Interpolation) 插值与图像插值 插值:利用已知数据去预测…

Redis面试都卷到C语言去了。。。

Redis 面试都卷到 C 去了。有个小伙伴在前两天找松哥模面的时候如是说到。 是啊,没办法,自从 Java 八股文这个概念被提出来并且逐步在 Java 程序员中强化之后,现在各种各样的八股文手册,有免费的有付费的,琳琅满目。 …

实验11 编写子程序《汇编语言》- 王爽

1. 需求 编写一个子程序,将包含任意字符,以 0 结尾的字符串中的小写字母转变成大写字母,描述如下。 名称:letterc 功能:将以 0 结尾的字符串中的小写字母转变成大写字母 参数:ds:di 指向字符串首地址 …

快速排序模版

1.霍尔法 #include <iostream> using namespace std; int partition(int *arr,int left,int right){int pivotIndexleft;while(left<right){while(left<right && arr[right]>arr[pivotIndex]){right--;}while(left<right && arr[left]<a…

新160个crackme - 040-DaNiEl-RJ.1

运行分析 需要破解Name和Serial PE分析 Delphi程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索字符串&#xff0c;找到关键字符串进入 对关键函数进行动调分析&#xff0c;注释和变量重命名如上还需要破解sub_4036E8 通过对比sub_4036E8函数的返回值和Nam…

python面向对象—封装、继承、多态

封装 当定义为私有成员变量时&#xff0c;引用或者打印都不可行。 私有成员对于类对象没有办法直接使用&#xff0c;但是我们类中其他成员却是可以访问这些私有成员的。 封装总结&#xff1a; 私有成员的定义我们已经了但是有什么实际的意义吗&#xff1f; 继承 继承表示&…

系规学习第19天

1.知识管理流程的目标是将运维生产过程中产生的各类信息所包含的知识最大限度地提取、保留&#xff0c;通过评审后加以应用&#xff0c;包括&#xff1a;实现知识共享&#xff0c;实现知识转化&#xff0c;避免知识流失&#xff0c;提高运维响应速度和质量&#xff0c;挖掘、分…

scrapy--图片管道-ImagesPipeline

免责声明:本文仅做演示与分享~ 目录 介绍 ImagesPipeline pipelines.py items.py zz.py settings.py 介绍 scrapy 还提供了处理图片、视频、音频等媒体文件的插件&#xff0c;如&#xff1a; - scrapy-images&#xff1a;用于下载和处理图片 - scrapy-video&#xff1…

<C++> 二叉树进阶OJ题

目录 1. 二叉树创建字符串 2. 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 3. 二叉树搜索树转换成排序双向链表 4. 根据一棵树的前序遍历与中序遍历构造二叉树 5. 根据一棵树的中序遍历与后序遍历构造二叉树 6. 二叉树的前序遍历&#xff0c;非递归迭代实现 7. 二…

13.全志H3-底板测试和测试记录

上面是我的微信和QQ群&#xff0c;欢迎新朋友的加入。 前段时间&#xff0c;做了一个H3的双DDR方案&#xff0c;记录一下测试过程。 1.硬件速率检测 1.取掉SD卡&#xff0c;不接调试串口&#xff0c;按住复位按键&#xff0c;上电 设备管理器会弹出USB设备&#xff0c;打开硬…

Python|日志记录详解(1)

引言 作为一名Python程序员&#xff0c;记录程序运行时的关键信息是一种有益的做法&#xff0c;这有助于深入理解你的代码。这种记录行为被称作日志记录&#xff0c;它是一个非常实用的工具&#xff0c;是编程工具箱中不可或缺的一部分。日志记录能够帮助你捕捉到在开发过程中可…

哈里和梅根的批评者似乎并不理解“不可征服运动会”的全球影响力

哈里王子和梅根马克尔的批评者似乎无法理解为什么这对夫妇继续像王室之旅一样环游世界。答案很简单&#xff1a;不可征服运动会。苏塞克斯夫妇通过这项体育赛事获得了成功&#xff0c;它为“国际受伤、受伤和生病的军人和女性提供了康复之路”。各国正在争夺未来运动会的主办权…

Photoshop用户必备:PS全套插件分享(PS插件全家桶)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 PS全套插件 📒🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 你是否时常为Photoshop中复杂的操作流程感到困扰,渴望拥有一把钥匙,能瞬间解锁设计效率与创意的新世界?今天,我将给大家分享一款让众多设计师梦寐以求的…

Elasticsearch用法

&#x1f4a5; 该系列属于【SpringBoot基础】专栏&#xff0c;如您需查看其他SpringBoot相关文章&#xff0c;请您点击左边的连接 目录 一、初识elasticsearch 1. 安装Elasticsearch和Kibana 2. 倒排索引 3. IK分词器 4. 基础概念 二、索引库操作 1. Mapping映射属性 2…

IM项目:进阶版即时通讯项目---语音识别和验证码服务

文章目录 语音识别基本功能模块划分流程图实现逻辑解析proto文件 验证码服务 本篇主要是对于该项目的语音识别和验证码服务模块的一个梳理&#xff0c;项目会直接使用部分封装好的内容&#xff0c;可以查看前面的文档或在本文档中进行查看和学习 由于这两个模块非常相似&#…

模型 卡茨管理模型

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。技术、人际、概念&#xff1a;管理技能三支柱。 1 卡茨管理模型的应用 1.1 产品经理能力模型&#xff1a;基于卡茨管理模型的应用 在现代企业管理中&#xff0c;产品经理的角色越来越受到重视。根据…