bug合集|艰难的TensorBoard可视化之路

简介: 今天上午在制作演示案例的时候,需要使用TensorBoard将训练过程可视化出来,原本想着很简单的,但是还是遇到了一些bug,现在就把当时我遇到的一些问题整理出来,请看文章。

前言


今天上午在制作演示案例的时候,需要使用TensorBoard将训练过程可视化出来,原本想着很简单的,但是还是遇到了一些bug,现在就把当时我遇到的一些问题整理出来,请看文章。


bug从何而来


我们先来写一个小的demo:借用keras来加载FashionMNIST数据集,并自定义训练模型,其网络层级结构如下图所示:


微信图片_20220611022738.png


核心层代码如下所示:


def __init__(self):
      self.cnn_1 = tf.keras.layers.Conv2D(32,3,activation=tf.nn.relu)
      self.batch_norm_1 = tf.keras.layers.BatchNormalization()
      self.cnn_2 = tf.keras.layers.Conv2D(64,3,activation=tf.nn.relu)
      self.batch_norm_2 = tf.keras.layers.BatchNormalization()
      self.cnn_3 = tf.keras.layers.Conv2D(128,3,activation=tf.nn.relu)
      self.batch_norm_3 = tf.keras.layers.BatchNormalization()
      self.last_dense = tf.keras.layers.Dense(10,activation=tf.nn.softmax)


现在我们的需求是将训练过程可视化展示出来,因此我们需要初始化TensorBoard,请看如下代码:


# 初始化tensorboard
tensorboard = tf.keras.callbacks.TensorBoard(histogram_freq=1)
model.fit(x=train_images,y=train_labels,epochs=20,verbose=2,callbacks=[tensorboard])
model.evaluate(x=test_images,y=test_labels)


接着,我们进入终端执行如下命令:


tensorboard --logdir=/full_path_to_your_logs/train


小伙伴们请注意,我遇到的bug就是从这里开始的,请看问题:


  1. 如何进入Mac下的Anaconda prompt
  2. zsh:command not found:tensorboard问题的解决方法。



Mac下的Anaconda prompt


首先,我们明确一点,mac下的anaconda prompt就是自带的terminal,我们来打开terminal,输入如下命令,发现报错信息如下所示:


微信图片_20220611022742.png


我们发现错误信息提示我们并不能找到tensorboard的的相关命令,请看解决方法。


我们继续在终端中输入如下命令:


vim ~/.zshrc


并向.zshrc文件中添加如下命令:


source ~/.bash_profile


微信图片_20220611022746.png


执行完上述操作之后,我们保存并退出vim,在终端中执行如下命令:


source ~/.zshrc


执行完上述所有操作之后,我们发现terminal中命令行的最前面多了一个(base)字样,我们接着继续输入tensorboard,发现如下信息:


微信图片_20220611022750.png


我们发现,此时的报错信息不再是...command not found...之类的信息,而是提示我们在使用tensorboard的时候应该加上logdir或db等参数信息。


好的,解决了上述问题之后,我们回到上文提到的那个例子当中。


首先,给小伙伴们看一下我们的项目目录:


微信图片_20220611022754.png


接着,我们来看具体的操作:


微信图片_20220611022757.png


最后,我们通过如下地址(http://localhost:6006/)即可在网页端查看可视化过程:


微信图片_20220611022801.png


that's great,解决了bug,接下来我们就可以为所欲为啦~


...command not found...


其实在上文中,我们在讲解mac下的anaconda prompt时,就已经提及到了一种解决方法,接下来,我们看第二种解决方法。


仍然是在项目文件目录下,我们输入如下命令:


alias tensorboard='python3 -m tensorboard.main'


执行完上述命令之后,我们接着执行tensorboard的启动命令,请看下图:


微信图片_20220611022804.png

tensorboard启动成功,以上就是我在启动tensorboard过程中遇到的几个bug,小伙伴们学会了吗?希望能够给各位小伙伴带来一丝丝帮助!


相关文章
通过 ansible 创建 openstack 虚拟机并部署应用(实战篇)
前文 通过 ansible 创建 openstack 虚拟机并部署应用(配置篇) 接下来我们实战一下。 目录结构 ── ansible.cfg├── group_vars│ ├── all.yml├── openstack.
5808 0
|
6月前
|
存储 SQL 运维
《告别日志混乱!巧用rsyslog与journald优化系统日志管理》
系统日志是服务器运行状况的“黑匣子”,对运维至关重要。rsyslog与journald作为两大日志管理工具,各具特色:rsyslog功能强大,支持本地及远程日志处理与转发;journald采用二进制存储,支持结构化数据和元数据,提升查询效率。两者协作可实现日志的高效收集、分类与分析,优化系统监控与故障排查。掌握它们的配置与使用,能显著提升服务器运维效率,保障系统稳定运行。
169 19
|
10月前
|
数据采集 人工智能 自然语言处理
FineWeb 2:开源的多语言预训练数据集,覆盖超过 1000 种语言
FineWeb 2 是由 Hugging Face 推出的多语言预训练数据集,覆盖超过 1000 种语言,支持多种 NLP 任务,如机器翻译和文本分类。该数据集通过定制化的数据处理流程,包括语言识别、去重、内容过滤和 PII 匿名化,提升了多语言模型的性能和泛化能力。
537 5
FineWeb 2:开源的多语言预训练数据集,覆盖超过 1000 种语言
|
10月前
|
人工智能 文字识别 语音技术
Megrez-3B-Omni: 首个端侧全模态理解开源模型
Megrez-3B-Omni是由无问芯穹(Infinigence AI)研发的端侧全模态理解模型,基于无问大语言模型Megrez-3B-Instruct扩展,同时具备图片、文本、音频三种模态数据的理解分析能力。
447 3
Megrez-3B-Omni: 首个端侧全模态理解开源模型
|
10月前
|
人工智能 弹性计算 监控
分布式大模型训练的性能建模与调优
阿里云智能集团弹性计算高级技术专家林立翔分享了分布式大模型训练的性能建模与调优。内容涵盖四大方面:1) 大模型对AI基础设施的性能挑战,强调规模增大带来的显存和算力需求;2) 大模型训练的性能分析和建模,介绍TOP-DOWN和bottom-up方法论及工具;3) 基于建模分析的性能优化,通过案例展示显存预估和流水线失衡优化;4) 宣传阿里云AI基础设施,提供高效算力集群、网络及软件支持,助力大模型训练与推理。
|
人工智能 物联网
用FaceChain-FACT生成人物写真体验分享
【8月更文挑战第4天】用FaceChain-FACT生成人物写真体验分享
272 1
|
存储 运维 NoSQL
|
机器学习/深度学习 自然语言处理
“大模型+强化学习”最新综述!港中文深圳130余篇论文:详解四条主流技术路线
【4月更文挑战第17天】香港中文大学(深圳)研究团队发表综述论文,探讨大型语言模型(LLMs)与强化学习(RL)结合的四条技术路线:信息处理器、奖励设计者、决策制定者和生成器。LLMs提升RL在多任务学习和样本效率,但处理复杂环境时仍有挑战。它们能设计奖励函数,但预训练知识限制在专业任务中的应用。作为决策者和生成器,LLMs提高样本效率和行为解释,但计算开销是问题。
797 1
“大模型+强化学习”最新综述!港中文深圳130余篇论文:详解四条主流技术路线
|
数据采集 并行计算 大数据
LabVIEW 32位与64位版本比较分析:性能与兼容性详解
LabVIEW 32位与64位版本比较分析:性能与兼容性详解
690 0
|
消息中间件 存储 缓存
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶