pytorch使用tensorboardX面板自动生成模型结构图和各类可视化图像

总结:

在原本代码中额外添加如下几行即可实现查看模型结构:

    from tensorboardX import SummaryWriter  # 用于进行可视化

    # 1. 来用tensorflow进行可视化
    with SummaryWriter("./log", comment="sample_model_visualization") as sw:  
        sw.add_graph(modelviz, sampledata)

操作步骤如下

安装完torch之后,再安装tensorboardX

pip install tensorboardX -i https://pypi.tuna.tsinghua.edu.cn/simple

运行下面代码 

import torch
import torch.nn as nn
import torch.nn.functional as F
from tensorboardX import SummaryWriter  # 用于进行可视化 
 
class modelViz(nn.Module):
    def __init__(self):
        super(modelViz, self).__init__()
        self.conv1 = nn.Conv2d(3, 16, 3, 1, padding=1)
        self.bn1 = nn.BatchNorm2d(16)
        self.conv2 = nn.Conv2d(16, 64, 3, 1, padding=1)
        self.bn2 = nn.BatchNorm2d(64)
        self.conv3 = nn.Conv2d(64, 10, 3, 1, padding=1)
        self.bn3 = nn.BatchNorm2d(10)
 
    def forward(self, x):
        x = self.bn1(self.conv1(x))
        x = F.relu(x)
        x = self.bn2(self.conv2(x))
        x = F.relu(x)
        x = self.bn3(self.conv3(x))
        x = F.relu(x)
        return x
 
 
if __name__  == "__main__":
    # 首先来搭建一个模型
    modelviz = modelViz()
    # 创建输入
    sampledata = torch.rand(1, 3, 4, 4)
    # 看看输出结果对不对
    out = modelviz(sampledata)
    print(out)  # 测试有输出,网络没有问题
 
    # 1. 来用tensorflow进行可视化
    with SummaryWriter("./log", comment="sample_model_visualization") as sw:
        sw.add_graph(modelviz, sampledata)
 
    # # 2. 保存成pt文件后进行可视化
    # torch.save(modelviz, "./log/modelviz.pt")

运行代码后会在"./log"路径下生成一个tfevents文件,在终端中进入代码的主目录下执行命令

tensorboard --logdir=./ 

 然后会输出

(base) jie@dell:~/桌面/fno_task$ tensorboard --logdir=./
TensorFlow installation not found - running with reduced feature set.

NOTE: Using experimental fast data loading logic. To disable, pass
    "--load_fast=false" and report issues on GitHub. More details:
    https://github.com/tensorflow/tensorboard/issues/4784

Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.16.2 at http://localhost:6006/ (Press CTRL+C to quit)

 http://localhost:6006/

然后按照提示打开浏览器,输入上面这个网址就可以看到我们搭建的网络结构了,如下图所示,可以双击打开每一个节点查看其内容。也可以查看详细的结构以及每一层的输入输出shape。通过双击模型的组件实现展示网络细节和收起细节。

结束!!!

官网详细和介绍使用链接:https://www.tensorflow.org/tensorboard/graphs?hl=zh-cn

tips:tensorboard是适用于tensorflow,而tensorboardX可以适用pytorch

tips: 如果你在虚拟环境cd到log的上一级文件夹,那么按照上面的路径就得不到你想要的可视化结果,路径不正确,应该输入

tensorboard --logdir=./log/
                        
参考链接:https://blog.csdn.net/Vertira/article/details/127326470  

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

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

相关文章

【echarts】 渐变色格状横条图

案例来源 https://www.makeapie.cn/echarts_content/xutsGwXHGt.html 效果 源码 let list [{name: 中和,value: 6}, {name: 西园,value: 1}, {name: 肖家河,value: 0}, {name: 石羊,value: 8}, {name: 合作,value: 0},{name: 桂溪,value: 6},{name: 芳草街,value: 1} ]; le…

Navicat使用ssh隧道连接mysql数据库

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139352748 文章目录 前言新建连接MySql,填写ssh隧道信息方式1:使用密码方式连接方式二:使用密钥方式连接 填写常规信息总结 前言 使用ssh隧道连接数据库,方便本机…

PS系统教程06

图片裁剪-详细版 首先勾选图层-单机裁剪工具-删除裁剪像素 背景颜色是和左边工作区颜色保持一致的。 确定选择 单机两下工作区中的√按下回车键 缩小裁剪 当你缩小裁剪之后再想扩大,那么扩大的部分就是背景颜色 不勾选删除裁剪像素效果(裁剪完单机一…

Element ui 快速入门(基础知识点)

element ui官网 前言: 在当今时代,我们在编写计算机程序时,不仅仅是写几个增删改查的简单功能,为了满足广大用户对页面美观的需求,为了让程序员们写一些功能更简便,提高团队协作效率,所以eleme…

看到大厂工时爆料,我沉默了。。

大厂工时爆料 今天逛脉脉的时候,看到一篇名为「一人一句,大厂工时爆料」的帖子: 点开之后,我沉默了 ... 出来爆料的基本上都是 10 小时。 好奇心之下,我搜索了一下去年很热的排行榜: 2023 年最新互联网公司…

开发小技巧

1.根据JSON生成实体类 打开网站:在线JSON校验格式化工具(Be JSON) 选中JSON转JAVA实体类,在文本框中输入要转实体类的JSON, 在下边可以输入类名、包名,然后点击下载即可 2、IDEA中复制类的全路径&#xf…

Java—— StringBuilder 和 StringBuffer

1.介绍 由于String的不可更改特性,为了方便字符串的修改,Java中又提供了StringBuilder和Stringbuffer类,这两个类大部分功能是相同的,以下为常用方法: public static void main(String[] args) {StringBuilder sb1 n…

electron初学

最近有一个开发桌面端的业务,考虑到跨平台就使用了electron。 引用官网:Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows…

[代码复现]Self-Attentive Sequential Recommendation(ing)

参考代码:SASRec.pytorch 可参考资料:SASRec代码解析 前言:文中有疑问的地方用?表示了。可以通过ctrlF搜索’?。 环境 conda create -n SASRec python3.9 pip install torch torchvision因为我是mac运行的,所以device是mps 下面…

MATLAB函数模块光显示zeros/poles怎么办?

出现下面这种图了怎么办?是做错了吗? 这种图就是它显示不完整了,把它拉大点就可以完全显示了。

编辑任何场景! 3DitScene:通过语言引导的解耦 Gaussian Splatting开源来袭!

文章:https://arxiv.org/pdf/2405.18424 项目:https://zqh0253.github.io/3DitScene/ huggingface:https://huggingface.co/spaces/qihang/3Dit-Scene 场景图像编辑在娱乐、摄影和广告设计中至关重要。现有方法仅专注于2D个体对象或3D全局场景编辑&…

harbor -- docker私有仓库安装配置

1 安装docker-compose $ curl -L "https://get.daocloud.io/docker/compose/releases/download/v1.25.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ chmod x /usr/local/bin/docker-compose 2 安装配置harbor $ wget https://g…

Windows11 wsl2编译Android14 使用ASfP Debug windows上启动的模拟器

wsl2的安装和配置 安装: 直接百度搜索最新的wsl2安装教程即可,官网:https://learn.microsoft.com/zh-cn/windows/wsl/install 1. 启用适用于 Linux 的 Windows 子系统(以管理员身份打开 PowerShell 并运行) Enable-WindowsOptionalFeature…

网络安全岗秋招面试题及面试经验分享

Hello,各位小伙伴,我作为一名网络安全工程师曾经在秋招中斩获🔟个offer🌼,并在国内知名互联网公司任职过的职场老油条,希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2024年秋招又快到了金…

【学习】软件测试中如何进行Web网页兼容性测试

在数字时代,Web网页作为信息传递和交流的重要平台,其稳定性和用户体验至关重要。如同一位匠人细致打磨他的工艺品,开发者亦需精心测试网页的兼容性,确保其在各种设备和浏览器上的表现无懈可击。今天,我们就来探讨如何对…

启智CV机器人,ROS, ubuntu 18.04

资料: https://wiki.ros.org/kinetic/Installation/Ubuntu https://blog.csdn.net/qq_44339029/article/details/120579608 http://wiki.ros.org/melodic/Installation/Ubuntu https://github.com/6-robot/wpb_cv 一、安装ros环境 装VM。 装ubuntu18.04 desktop.…

【赠书第27期】向AI提问的艺术:提示工程入门与应用

文章目录 前言 1 问题的构建 1.1 明确性与具体性 1.2 结构化与层次性 1.3 相关性与针对性 2 提问的技巧 2.1 简洁明了 2.2 避免歧义 2.3 使用自然语言 3 与AI的互动策略 3.1 耐心与理解 3.2 逐步引导 3.3 反馈与调整 4 总结与展望 5 推荐图书 6 粉丝福利 前言 …

uni-app实现页面通信EventChannel

uni-app实现页面通信EventChannel 之前使用了EventBus的方法实现不同页面组件之间的一个通信,在uni-app中,我们也可以使用uni-app API —— uni.navigateTo来实现页面间的通信。注:2.8.9 支持页面间事件通信通道。 1. 向被打开页面传送数据…

XX集团信息(IT)战略和规划项目(154页PPT)

方案介绍: 本集团信息(IT)战略与规划项目方案是集团数字化转型和信息化建设的重要组成部分。通过本方案的实施,我们将为集团的长期发展提供坚实的信息化支撑,提高集团的管理水平和运营效率,增强企业的竞争…

来聊聊Redis中的字符串对象的设计

写在文章开头 redis对于性能的追求做到了极致,在之前的文章中我们redis的简单动态字符串SDS进行了详细的介绍了,而本文我将从顶层的视角来聊聊Redis基于SDS等数据结构实现一个平衡时间与空间的字符串对象。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,…