Pytorch个人学习记录总结 02

目录

Tensorboard


Tensorboard

启动tensorboard服务

cd 到 logs 目录所在的同级目录,在命令行输入如下命令,logdir等式右边可以是相对路径或绝对路径。

tensorboard --logdir=logs --port 6006
#如果是Windows环境,要注意路径解析,如
#tensorboard --logdir=r'D:\myboard\test\logs' --port 6006

SummaryWriter类from torch.utils.tensorboard import SummaryWriter(摘要编写器) 

如果调用SummaryWriter类没有传入log_dir参数的话,会默认在当前目录下新建一个runs文件夹用于存放训练过程中的event事件文件。

使用自动生成的文件夹名称runs创建SummaryWriter()。

writer = SummaryWriter()
# folder location: runs/May04_22-14-54_s-MacBook-Pro.local/

使用指定的文件夹名称my_experiment创建SummaryWriter()。

writer = SummaryWriter("my_experiment")
# folder location: my_experiment

创建一个附加注释的SummaryWriter()。

writer = SummaryWriter(comment="LR_0.1_BATCH_16")
# folder location: runs/May04_22-14-54_s-MacBook-Pro.localLR_0.1_BATCH_16/

writer.add_image(tag, tensor, step) # 添加图像(模型图像,观察训练结果)


writer.add_scalar(tag, tensor, step) # 添加标量(就是一些数据的变化曲线,比如loss)


writer.add_graph(model, input) # 查看模型计算图

writer.close()关闭

打开tensorboard观察图表的方式:在pycharm的终端Terminal中键入tensorboard --logdir=logs --port=6007(最后指定端口的操作是可选的,这里指定端口是为了避免:当前有多人在使用同一个服务器的默认端口进行训练而造成的拥塞


注意:
1)当前面3步运行完之后,再通过第4步指定event文件的存放路径,将event文件们显示进行观察。


2)如果同一logdir下存放了多个相同tag的event文件,则绘图时会发生混乱。解决方案:将此logdir下的文件全部删除,然后重新运行。or构建子文件夹,也就是说创建新的SummaryWriter(‘新文件夹’)
 

运用writer.add_image()。由上节 P8 可知,add_image能处理的图像数据类型是:torch.Tensor、numpy.array、String。
IL.Image 读取的数据类型是PIL.JpegImagePlugin.JpegImageFile,所以需要转换成 numpy.array 才可放进 add_image 中使用。
 

利用numpy.array() 将 PIL 转为 numpy.ndarray

from PIL import Image
image_path = 'hymenoptera_data/train/ants/0013035.jpg'
img = Image.open(image_path)
print(type(img))	# <class 'PIL.JpegImagePlugin.JpegImageFile'>import numpy as np
img_array = np.array(img)	
print(type(img_array))	# <class 'numpy.ndarray'>

img_tensor的默认shape是(3, H, W)


如果要使用其他的shape,则需要通过dataformats来指明一下,即:dataformats=‘CHW’、dataformats=‘HWC’、dataformats=‘HW’


通过将PIL转换为numpy后,虽然满足了img_tensor的数据类型要求,但是没有满足img_tensor的默认shape要求。

因为转换后的numpy的shape是(H,W,C),也就是说channel=3在最后一维,所以还需要在add_image()中添加参数dataformats=(H,W,C)(或者手动调整一下维度,代码为img_array = img_array.transepose(2, 0, 1),然后就不用添加dataformats参数了)。
 

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as npwriter = SummaryWriter('logs_3')  # 实例化一个SummaryWriter为writer,并指定event的保存路径为logsimage_path1 = 'hymenoptera_data/train/ants/0013035.jpg'
image_path2 = 'hymenoptera_data/train/bees/16838648_415acd9e3f.jpg'img = Image.open(image_path2)	# image_path1
img_array = np.array(img)
print(type(img))  # <class 'PIL.JpegImagePlugin.JpegImageFile'>
print(type(img_array))  # <class 'numpy.ndarray'>
print(img_array.shape)# 这里的add_image中的tag为'test_image'没有变化,所以在tensorboard中可通过拖动滑块来展示这两张图像
# writer.add_image('test_image', img_array, 1, dataformats='HWC')
writer.add_image('test_image', img_array, 2, dataformats='HWC')for i in range(10):	# 这个add_scalar暂时没有管它,虽然tag没有变,但是因为每次写入的数据都是y=3x所以曲线没有显示混乱writer.add_scalar('y=3x', 3 * i, i)writer.close()  # 最后还需要将这个writer关闭

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

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

相关文章

建Stable-Diffusion-Webui的AI

建Stable-Diffusion-Webui的AI 人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0) - 知乎

netty知识集锦2

粘包半包 粘包半包解决方案&#xff0c; 1短链接&#xff0c;它的消息边界是从链接建立到链接断开 2.定长解码器&#xff1a;服务器端选最大长度的消息作为定长&#xff0c;客户端不足补齐&#xff0c;缺点造成浪费 netty协议设计与解析 Message编码解码

AWS IAM介绍

前言 AWS是世界上最大的云服务提供商&#xff0c;它提供了很多组件供消费者使用&#xff0c;其中进行访问控制的组件叫做IAM(Identity and Access Management)&#xff0c; 用来进行身份验证和对AWS资源的访问控制。 功能 IAM的功能总结来看&#xff0c;主要分两种&#xff1…

《零基础入门学习Python》第060讲:论一只爬虫的自我修养8:正则表达式4

有了前面几节课的准备&#xff0c;我们这一次终于可以真刀真枪的干一场大的了&#xff0c;但是呢&#xff0c;在进行实战之前&#xff0c;我们还要讲讲正则表达式的实用方法和扩展语法&#xff0c;然后再来实战&#xff0c;大家多把持一会啊。 我们先来翻一下文档&#xff1a;…

openGauss学习笔记-17 openGauss 简单数据管理-表达式

文章目录 openGauss学习笔记-17 openGauss 简单数据管理-表达式17.1 简单表达式17.2 条件表达式17.3 子查询表达式17.4 数组表达式17.5 行表达式 openGauss学习笔记-17 openGauss 简单数据管理-表达式 表达式类似一个公式&#xff0c;我们可以将其应用在查询语句中&#xff0c…

25 MFC 数据库

文章目录 导入ADO库 导入ADO库 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")void CADODlg::OnBnClickedBtnQuery() {//导入ADO库::CoInitialize(NULL);//初始化COM库_ConnectionPtr pCo…

《面试1v1》如何提高远程用户的吞吐量

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

Flutter动画库:animations(路由过渡动画或者页面切换动画)

animations animations 是一个 Flutter 库&#xff0c;它提供了一组用于创建动画效果的工具和组件。这个库的核心重点是路由过渡动画或者页面切换动画 地址 https://pub-web.flutter-io.cn/packages/animations 安装 flutter pub add animations看了下官方文档和官方例子&a…

计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

web排错记录 在使用javaweb的过程中会出现的一些错误请在下方目录查找。 目录 错误1&#xff1a;HTTP状态404——未找到 错误2&#xff1a;导航栏下拉菜单无法点开的问题 错误3&#xff1a;字符乱码问题 错误4&#xff1a;jsp网页全部都是&#xff1f;&#xff1f;&#x…

Kafka日志告警关键字

在配置Kafka日志告警时&#xff0c;可以关注以下关键字&#xff1a; ERROR&#xff1a;表示发生了错误&#xff0c;需要进一步检查错误消息以确定具体的问题。 Exception&#xff1a;表示发生了异常情况&#xff0c;需要进一步检查异常信息以确定具体的问题。 Failed&#xf…

uniapp实现轮播图大图预览

为轮播图绑定点击事件将轮播图index传给自定义事件 <!-- 轮播图 --><swiper :indicator-dots"true" :autoplay"true" :interval"3000" :duration"1000" circular"true"><swiper-item v-for"(item, inde…

【单片机】MSP430F149单片机,晨启,音乐播放器,蜂鸣器音乐

四、音乐播放器 任务要求&#xff1a; 设计制作一个简易音乐播放器&#xff08;通过手柄板上的蜂鸣器发声&#xff0c;播放2到4首音 乐&#xff09;&#xff0c;同时LED模块闪烁&#xff0c;给人视、听觉美的感受。 评分细则&#xff1a; 按下播放按键P15开始播放音乐&#x…

【C++】继承基础知识及简单应用,使用reportSingleClassLayout(在Visual Studio开发人员命令提示窗口)查看派生类详细信息

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】继承基础知识及简单应用&#xff0c;使用reportSingleClassLayout&#xff08;在Visual Studio开发人员命令提示窗口&#xff09;查看派生类详细信息 website&#xff1a;黑马程序员C date&#xf…

微信小程序原生上传图片和预览+云函数上传

1.前台页面 1.1wxml问阿金 <!-- 说明一个上传页面的按钮 --> <button type"primary" bindtap"uploadPage">上传页面展示</button> <!-- 声明一个上传服务器的按钮 --> <button type"warn" bindtap"uploadSeve…

pytest钩子函数(四):用例执行钩子

前言 pytest这个框架提供了非常多的钩子。通过这些钩子我们可以对pytest 用例收集、用例执行、报告输出等各个阶段进行干预&#xff0c;根据需求去开发对应的插件&#xff0c;以满足自己的使用场景。 01 什么是钩子函数&#xff1f; 钩子函数在pytest称之为Hook函数,它pytes…

第四讲:MySQL中DDL一些基本数据类型及表的创建、查询

目录 1、创建表:2、DDL一些基本数据类型&#xff1a; 1、创建表: 部分单词及解析&#xff1a; 1、tables:表 2、comment:评论&#xff0c;解释 3、gender:性别 4、neighbor&#xff1a;邻居 1、创建表&#xff1a;&#xff08;注&#xff1a;在自定义数据库操作&#xff0c;…

ElasticSearch初探

ElasticSearch 是什么? ElasticSearch是一个分布式、Restfui 风格的搜索和数据分析引擎,国内简称ES, ElasticSearch 是用Java开发的,底层基于Lucene,Lucene是一种全文的索引库,直接采用Lucene是比较麻烦的,Elasticsearch在Lucene的基础上开发了一个强大的搜索引擎。 ELK…

第四十六天

●运算符也叫操作符 通过运算符可以对一个或多个值进行运算&#xff0c;并获取运算结果 比如&#xff1a;typeof就是运算符&#xff0c;可以来获得一个值的类型 它会将该值的类型以字符串的形式返回 number string boolean undefined object ●算数运算符 当对非Number类型的…

vscode开发Go和Java

vscode开发Go和Java 最新最全 vscode 插件推荐可以参考&#xff1a; https://zhuanlan.zhihu.com/p/623580867 1、公共插件安装 下面是个人使用的插件&#xff1a; # 中文插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code https://marketplace…

基于人工智能的房地产行业的ChatGPT能提供什么样的改进解决方案?

解决方案描述自动化客户服务通过自然语言处理和聊天机器人技术&#xff0c;实现自动化的客户咨询和问题解答。这可以提高客户满意度&#xff0c;节省人力资源&#xff0c;并实现全天候的客户支持。数据分析与预测利用机器学习和数据分析技术&#xff0c;对房地产市场数据进行深…