小土堆pytorch学习笔记002

1、TensorBoard的使用

(1)显示坐标:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter = 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 Imagewriter = 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)

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

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

相关文章

【LeetCode: 148. 排序链表 + 链表 + 归并排序】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

今天来看看工商业储能收益模式有哪些

安科瑞武陈燕acrelcy 2023 年有望成为工商业储能的发展元年,主要原因2023年工商业储能的经济性有望大幅提升。工商业储能下游主要为工商业企业,投资是否具有经济性是工商业需求的核心因素之一,而2023年工商业储能经济性或将显著提升&#xf…

shared_ptr 与 unique_ptr 的转换 笔记

推荐B站文章: 6.shared_ptr与unique_ptr_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p6&vd_sourcea934d7fc6f47698a29dac90a922ba5a3我的往期文章: 独占指针:unique_ptr 与 函数调用-CSDN博客https://blog.csdn.n…

【Docker】构建镜像

一般来说我们不需要自己构建镜像,这些镜像在docker hub上面已经有现成的了,比如常用的数据库、应用软件等。 某些情况我们还是需要自己来构建: 找不到现成的镜像,比如自己开发的应用程序 需要在镜像中加入特定的功能/软件 Docker提供了两种…

C++入门学习(十五)运算符

算术运算符&#xff1a;用于处理四则运算赋值运算符&#xff1a;用于将表达式的值赋给变量比较运算符&#xff1a;用于表达式的比较&#xff0c;并返回一个真值或假值逻辑运算符&#xff1a;用于根据表达式的值返回真值或假值 一、加减乘除 #include <iostream> #incl…

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上&#xff0c;根据实际安装经验&#xff0c;稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…

A股市场风云!深圳开股票账户交易佣金费用最低是多少?

最近A股市场表现出色&#xff0c;呈现出风云状态&#xff01;投资者纷纷涌入股市&#xff0c;推动股指不断攀升。一方面&#xff0c;政府出台了一系列政策来稳定市场&#xff0c;如加强监管力度、推动资本市场改革等&#xff0c;为投资者提供了更多机会和便利条件。另一方面&am…

“情暖寒冬 温暖相伴”关爱慰问

岁末寒冬&#xff0c;春节将至&#xff0c;为持续巩固脱贫攻坚成果&#xff0c;扎实助力乡村振兴&#xff0c;市融媒体中心开展“情暖寒冬 温暖相伴”慰问活动。 1月25市融媒体中心联合我市志愿者协会在南村镇忽树庄村开展“情暖寒冬 温暖相伴”慰问活动&#xff0c;为脱贫户送…

Spark3学习笔记

文章目录 一、Spark 基础1、Spark概述1.1 Spark简介1.2 Spark VS Hadoop1.3 Spark特点1.4 Spark入门Demo 2、Spark 运行模式2.1 概述2.2 Local模式2.3 Standalone 模式2.4 配置高可用&#xff08; Standalone HA&#xff09;2.5 Yarn 模式2.6 K8S & Mesos 模式2.7 Windows …

Vue基础知识

Vue Vue基础知识 v-bind:动态绑定属性值 Vue 修改&#xff0c;标签内也修改 在methods 中可以定义很多函数 在 data 中可以定义很多变量 v-if / v-show&#xff1a;对符合条件的元素进行展示 v-for:把数据遍历出现在网页中 案例 <!DOCTYPE html><html lang"e…

postman自动化测试如何设置环境变量教程

在接口测试中&#xff0c;我们经常会用到一些通用请求参数&#xff0c;或者需要使用某个接口的返回参数作为另一个接口的请求参数&#xff0c;静态的参数还好&#xff0c;如果是经常变动的参数&#xff0c;那么操作起来&#xff0c;就特别的麻烦&#xff0c;这时候&#xff0c;…

如何利用监管工具有效防止员工私单飞单?

在今天的商业社会中&#xff0c;企业必须保持高度的监管和控制力度&#xff0c;以确保员工遵守公司的规章制度和道德准则。尤其在微信成为了日常工作中不可或缺的沟通工具的情况下&#xff0c;如何有效防止员工进行私单飞单成为了每个企业亟需解决的问题。 而微信管理系统通过…

【CCF】JCR3区,SCIEI双检,征稿领域广,来稿不拒!

一、期刊简介 3区计算机类SCI&EI 【期刊概况】IF&#xff1a;2.0-3.0&#xff0c;JCR3区&#xff0c;中科院4区&#xff1b; 【终审周期】走期刊部系统&#xff0c;3个月左右录用&#xff1b; 【检索情况】SCI&EI双检&#xff1b; 【WOS收录年份】2001年&#xff…

应急响应-Windows-进程排查

进程&#xff08;process&#xff09;是计算机中的程序关于某数据集合上的一次运动活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结果的基础。在早期面向进程结构中&#xff0c;进程是线程的容器。无论是在Windows系统还是Linux系统中&#xff0c…

专业远程控制软件有哪些品牌

远程办公、远程控制类的软件很多&#xff0c;主打方向和面向的客户人群也不一样。个人用户可能更在意便捷、免费等因素&#xff1b;专业用户会更注重安全性、管理功能等。今天我们介绍几个在全球知名的专业商业远程软件。 1、TeamViewer 简介&#xff1a;TeamViewer &#xf…

2016年认证杯SPSSPRO杯数学建模B题(第一阶段)低分辨率下看世界全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 B题 低分辨率下看世界 原题再现&#xff1a; 数码摄像技术被广泛使用于多种场合中。有时由于客观条件的限制&#xff0c;拍摄设备只能在较低的分辨率下成像。为简单起见&#xff0c;我们只考虑单色成像。假设成像的分辨率为 32 64&#xff0c…

持续集成工具Jenkins的使用之安装篇(一)

Jenkins是一个基于Java开发的开源的一种持续集成工具&#xff0c;主要用于环境部署&#xff0c;监控重复性的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。要想使用它&#xff0c;你就必须的先安装&#xff0c;接下来我们就介绍下J…

win10重启以后才能识别有线耳机

最近遇到一件让人很无奈的事情&#xff0c;win10重启以后才能识别有限耳机。奇怪的是无线耳机没有问题。 bing搜索了很多&#xff0c;就是解决不了问题。 偶然之间&#xff0c;文后的参考文献被搜索到&#xff0c;该文献提供的方法比较简单&#xff0c;经过验证&#xff0c;方…

恒创科技:云服务器配置中的vCPU与物理CPU有啥区别?

​  说到云服务器&#xff0c;您可能经常会遇到vCPU这个词&#xff0c;而且它和物理CPU经常被拿来谈论。尽管它们听起来相似&#xff0c;但两者之间存在显著差异。在本文中&#xff0c;我们将详细讨论云vCPU和物理CPU之间的差异。 物理与虚拟 CPU 和 vCPU 之间最显著的区别在…

H5112B 48V 60V 80V 100V 多路共阳 RGB调光 PWM调光芯片

多路共阳恒流芯片是一种常用于LED驱动等应用的电子元件&#xff0c;它可以实现多个LED灯共享一个电流源&#xff0c;并且保持每个LED灯的亮度稳定。其工作原理如下&#xff1a; 多路输入&#xff1a;多路共阳恒流芯片通常有多个输入引脚&#xff0c;每个引脚对应一个LED灯。这…