小土堆pytorch学习笔记002

目录

1、TensorBoard的使用

(1)显示坐标:

 (2)显示图片:

2、Transform的使用

3、常见的Transforms

(1)#ToTensor()

(2)# Normalize()

(3)#Resize()

(4)#Compose()

4、总结:


1、TensorBoard的使用

(1)显示坐标:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer = SummaryWriter("logs")   # 写入的位置  log_dir = 'logs
# writer.add_image()
"""
 y = x
 
"""
for i in range(100):
    writer.add_scalar("y=x", i, i)

writer.close()

运行:

 浏览器运行结果:

# 运行
>tensorboard --logdir=logs        #会打开http://localhost:6006/

>tensorboard --logdir=logs --port=6007   (#增加端口设置)

 (2)显示图片:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer = SummaryWriter("logs")   # 写入的位置  log_dir = 'logs

"""
参数:
    def add_image(
        self, tag, img_tensor, global_step=None, walltime=None, dataformats="CHW"
    ):
    其中:
     img_tensor (torch.Tensor, numpy.ndarray, or string/blobname): Image data
"""
image_path = "./hymenoptera_data/train/ants/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)   # (512, 768, 3)   H高度,W宽度,C通道数

writer.add_image("test", img_array, 5, dataformats="HWC")  # 从PIL到numpy,需要在add_image()中指定shape中每一个数字/维表示的含义。


"""
 y = x
 
 参数:
 def add_scalar(
        self,  
        tag,   # 标签
        scalar_value,   # y轴
        global_step=None,   # x轴
        walltime=None,
        new_style=False,
        double_precision=False,
    ):
"""
for i in range(100):
    writer.add_scalar("y=2x", 3*i, i)

writer.close()

结果展示:

2、Transform的使用

(1)transforms该如何使用(python)

from PIL import Image
from torchvision import transforms

# python的用法  ==>tensor
"""
通过 transforms.ToTensors去解决两个问题:
    1、transforms该如何使用(python)
    2、为什么我们需要Tensor数据类型
"""

img_path = "./dataset/Snipaste_01.jpg"
img = Image.open(img_path)
print(img)

# 1、transforms该如何使用(python)
tensor_trans = transforms.ToTensor
tensor_img = tensor_trans().__call__(img)  # 将img转换成 tensor_img的图片

print(tensor_img)

运行结果:


(2)为什么我们需要Tensor数据类型  (在之后的神经网络会用到,前向传播、反向传播等)

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


# python的用法  ==>tensor
"""
通过 transforms.ToTensors去解决两个问题:
    1、transforms该如何使用(python)
    2、为什么我们需要Tensor数据类型
"""

img_path = "./dataset/Snipaste_01.jpg"
img = Image.open(img_path)
print(img)

# 1、transforms该如何使用(python)
tensor_trans = transforms.ToTensor
tensor_img = tensor_trans().__call__(img)  # 将img转换成 tensor_img的图片
print(tensor_img)


writer = SummaryWriter("logs_")
writer.add_image("Tensor_img", tensor_img)
writer.close()


运行结果截图:

3、常见的Transforms

(1)#ToTensor()

(2)# Normalize()

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
img_path = "./dataset/Snipaste_01.jpg"
img = Image.open(img_path)
print(img)


writer = SummaryWriter("logs__")

# ToTensor()
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)

# Normalize
"""
output[channel] = (input[channel] - mean[channel]) / std[channel]
"""
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([6,3,5],[3,2,1])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)


writer.close()

Noumalize() 和ToTensor()运行结果:

(3)#Resize()

(4)#Compose()

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
img_path = "./dataset/Snipaste_01.jpg"
img = Image.open(img_path)
print(img)


writer = SummaryWriter("logs__")

# ToTensor()
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)
writer.add_image("ToTensor", img_tensor)

# Normalize
"""
output[channel] = (input[channel] - mean[channel]) / std[channel]
"""
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([6,3,5],[3,2,1])
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize", img_norm)


# Resize()
print(img.size)
trans_resize = transforms.Resize((512, 512))
# img PIL -> resize ->img_resize  PIL
img_resize = trans_resize(img)
print(img_resize)
# img_resize PIL -> totensor -> img_resize tensor
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize)


#Compose   --resize -2
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize_compose", img_resize_2, 1)



writer.close()

4、总结:

①关注输入和输出类型。

②多看官方文档。

③关注方法需要哪些参数

④查看数据类型 type( xxx)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基础—面向对象—19static关键字详解、抽象类、接口、N种内部类

1、static关键字 匿名代码块、静态代码块、构造方法 静态代码块是在类加载的时候执行,仅执行一次 匿名代码块在调用构造函数之前 验证如下图: 2、静态导入包(可能很多人听都没听过) 3、Math是用final关键字的,fina…

Mybatis-Plus扩展

7 MybatisX插件[扩展] 7.1 MybatisX插件介绍 MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。 安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装。 功…

【Midjourney】如何自定义一套参数

使用Midjourney有时候会遇到需要调整某些参数的时候,例如宽高之类的: --hd --ar 7:4 而Midjourney中提供了一条指令用于自定义一套参数方便重复使用。 以下指令创建一个名为“mine”的选项,翻译过来就是 --hd --ar 7:4: 创建成功后会有类似…

112. 路径总和详解!!三种解法,总有一款适合你(Java)

513.找树左下角的值 题目链接:513. 找树左下角的值 BFS(迭代)法: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNod…

在Meteor Lake上测试基于Stable Diffusion的AI应用

上个月刚刚推出的英特尔新一代Meteor Lake CPU,预示着AI PC的新时代到来。AI PC可以不依赖服务器直接在PC端处理AI推理工作负载,例如生成图像或转录音频。这些芯片的正式名称为Intel Core Ultra处理器,是首款配备专门用于处理人工智能任务的 …

外包干了8个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

Java 的 Map 與 List

通過重新new 一個ArrayList 轉化 resTask.setList(new ArrayList<Group>(custMap.values())); 无序的Map List 有序的数据放到Map&#xff0c;就变成无序。 List排序 按照code 的字母进行排序A-Z resTask.getListData().sort(Comparator.comparing(Gmer::getCode));…

深度强化学习(王树森)笔记08

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

【论文阅读|半监督小苹果检测方法S3AD】

论文题目 &#xff1a; : Semi-supervised Small Apple Detection in Orchard Environments 项目链接&#xff1a;https://www.inf.uni-hamburg.de/en/inst/ab/cv/people/wilms/mad.html 摘要&#xff08;Abstract&#xff09; 农作物检测是自动估产或水果采摘等精准农业应用不…

盘点热门的GPTS智能体,生产力远超原生ChatGPT4

OPENAI开放了GPTS智能体商店&#xff0c;类似于appstore的应用商店&#xff0c;在GPTS商店里面你可以发现并创建自定义版本的ChatGPT&#xff0c;这些版本结合了指令、额外知识和任何技能组合&#xff01; 本周精选 GPTS智能体不仅可以通过API的方式将你的私有化的数据和能力…

双链表的基本知识以及增删查改的实现

满怀热忱&#xff0c;前往梦的彼岸 前言 之前我们对单链表进行了非常细致的剖析&#xff0c;现在我们所面临的则是与之相对应的双链表&#xff0c;我会先告诉诸位它的基本知识&#xff0c;再接着把它的增删查改讲一下&#xff0c;ok&#xff0c;正文开始。 一.链表的种类 我…

机器学习和深度学习中的normalization(归一化)

在机器学习和深度学习中&#xff0c;normalization&#xff08;归一化&#xff09;是一种重要的数据预处理步骤&#xff0c;它的目的是改变数值数据的形式&#xff0c;以使其在一个固定的范围内&#xff0c;通常是 0 到 1&#xff0c;或者使其均值为 0&#xff0c;标准差为 1。…

Jenkins+Python自动化测试持续集成详细教程

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

基于Prompt Learning的信息抽取

PTR: Prompt Tuning with Rules for Text Classification 清华&#xff1b;liuzhiyuan&#xff1b;通过规则制定subpromptRelation Extraction as Open-book Examination: Retrieval-enhanced Prompt Tuning Relation Extraction as Open-book Examination: Retrieval-enhance…

JSP在线阅读系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP 小说在线阅读系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为SQLServer2008&#…

KubeSphere 核心实战之四【在kubesphere平台上部署Ruoyi-cloud项目】(实操篇 4/4)

**《KubeSphere 核心实战系列》** KubeSphere 核心实战之一&#xff08;实操篇 1/4&#xff09; KubeSphere 核心实战之二&#xff08;实操篇 2/4&#xff09; KubeSphere 核心实战之三&#xff08;实操篇 3/4&#xff09; KubeSphere 核心实战之四&#xff08;实操篇 4/4&…

学会用Python分割、合并字符串

在很多情况下&#xff0c;我们需要对字符串进行分割或合并&#xff0c;以满足特定的需求&#xff0c;例如将字符串拆分成多个部分、将多个字符串合并成一个等等。Python提供了多种方法来进行字符串的分割和合并&#xff0c;本文将介绍其中几种常用的方法。 一、使用split()函数…

深度解析C++引用究竟是什么

首先看一段代码&#xff1a; #include<iostream> using namespace std; void fun(int*a){} void fun(int&a){} int main(){int a10;fun(&a);fun(a); }我们查看它的汇编结果时会发现引用和指针传参整个过程的汇编是一模一样的 我们再看下面这段代码&#xff1a…

HBase(docker版)简单部署和HBase shell操作实践

文章目录 说明HBase部署访问HBase Shell常见命令数据定义语言(DDL) 数据操作语言(DML)通用操作访问HBase WebUI 说明 本文适合HBase初学者快速搭建HBase环境&#xff0c;练习常见shell使用本文参考资料 《大数据技术原理和应用》&#xff08;林子雨 编著 第三版&#xff09;zh…

C++ 滑动窗口

目录 1、209. 长度最小的子数组 2、3. 无重复字符的最长子串 3、1004. 最大连续1的个数 III 4、1658. 将 x 减到 0 的最小操作数 5、904. 水果成篮 6、438. 找到字符串中所有字母异位词 7、30. 串联所有单词的子串 8、76. 最小覆盖子串 1、209. 长度最小的子数组 思路&…