TensorBoard的使用:生成计算图

TensorBoard的使用:生成计算图


操作系统:Windows
前提:使用Anaconda搭建好了TensorFlow的环境,环境名为“tensorflow”

Main Text

以如下代码为例:
tensorflow中

# tf1.py
import tensorflow as tf 
# 计算范围:Computation
with tf.name_scope("Computation"):
    # 子计算范围:Part1
    with tf.name_scope("Part1"):
        a=tf.constant(5)
        b=tf.constant(4)
        c=tf.multiply(a,b)
    # 子计算范围:Part2
    with tf.name_scope("Part2"):
        d=tf.constant(2)
        e=tf.constant(3)
        f=tf.multiply(d,e)

# 计算范围:Result
with tf.name_scope("Result"):
    g=tf.add(c,f)

# 创建一个TensorFlow会话
with tf.Session() as sess:
    # 采用此函数将计算图的结果写入一个事件中
    writer=tf.summary.FileWriter("log", sess.graph)
    print(sess.run(g))
    writer.close()

2019.9.4 update
keras中

from __future__ import print_function
import numpy as np
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import RMSprop
from keras.utils import np_utils
import os

np.random.seed(1671)

NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10
OPTIMIZER = RMSprop()
N_HIDDEN = 128
VALIDATION_SPLIT = 0.2  # 训练集中用作验证集的数据比例
DROPOUT = 0.3
MODEL_DIR = "./keras_test/logs"

(X_train, y_train), (X_test, y_test) = mnist.load_data()
RESHARPED = 784
X_train = X_train.reshape(60000, RESHARPED)
X_test = X_test.reshape(10000, RESHARPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255

print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# N_HIDDEN个隐藏层

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHARPED,)))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

model.compile(loss='categorical_crossentropy', optimizer=OPTIMIZER, metrics=['accuracy'])
# checkpoint = ModelCheckpoint(filepath=os.path.join(MODEL_DIR, "model-{epoch:02d}.h5"))
tensorboard=TensorBoard(log_dir='./logs', histogram_freq=0, batch_size=32, write_graph=True, write_grads=True,
                    write_images=True, embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None)
model.fit(X_train, Y_train, batch_size=BATCH_SIZE, epochs=NB_EPOCH, verbose=VERBOSE,
          validation_split=VALIDATION_SPLIT, callbacks=[tensorboard])
score = model.evaluate(X_test, Y_test, verbose=VERBOSE)
print("Test score:", score[0])
print("Test accuracy:", score[1])

执行后,要找到生成日志文件的文件夹(笔者是在VS Code下挂载anaconda的环境,log文件所在的文件夹和py文件在同一目录)。

打开 Anaconda Prompt 输入

activate tensorflow(环境名)

或者打开cmd输入

conda activate tensorflow(环境名)

就可以进入tensorflow的环境。

接下来要定位到log文件的上级目录,笔者的情况即为定位到py文件所在的目录。

cd ***(path)

然后输入如下命令:

tensorboard --logdir (path)

经过测试,路径不用加不加引号没关系,但是*–logdir(path)*之间要有空格或等号。

注意:

  1. log是log文件所在文件夹的文件夹名,它是由前文中的如下代码决定的,双引号内的内容就是文件夹名,可以自定义。

    writer=tf.summary.FileWriter(“log”, sess.graph)

  2. “–port==6003”是自定义端口号,可以缺省。

最后终端窗口会反馈一个网址,将这个网址输入浏览器中便可,最后效果如下。
Alt

Reference:

[1]: Hands-On Reinforcement Learning with Python: Master reinforcement and deep reinforcement learning using OpenAI Gym and TensorFlow [M]
[2]: https://github.com/PacktPublishing/Hands-On-Reinforcement-Learning-with-Python
[3]: https://keras.io/zh/callbacks/#tensorboard

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorBoard是一个用于可视化TensorFlow模型训练过程和结果的工具。它提供了一种直观的方式来监控和调试模型,包括可视化网络结构、训练过程中的损失和准确率曲线、激活直方计算等。 要使用TensorBoard,首先确保你已经安装了TensorFlow。然后,在训练过程中,将训练过程中生成的日志文件记录到一个目录中,这个目录将作为TensorBoard的输入。 在Python代码中,你可以使用`tf.summary.FileWriter`来将日志记录到指定目录。例如: ```python import tensorflow as tf # 定义一个并进行训练 # ... # 创建一个用于写入日志的文件写入器 log_dir = "logs/" summary_writer = tf.summary.create_file_writer(log_dir) # 在每个训练步骤中,记录相关信息 with summary_writer.as_default(): tf.summary.scalar('loss', loss, step=step) tf.summary.scalar('accuracy', accuracy, step=step) # 其他需要记录的信息 # 启动TensorBoard服务器 tensorboard --logdir=logs/ ``` 在命令行中运行上述代码后,会在`logs/`目录下生成日志文件。然后打开终端,切换到包含`logs/`目录的上级目录,并运行`tensorboard --logdir=logs/`命令,就可以启动TensorBoard服务器。 启动成功后,在浏览器中访问`http://localhost:6006`,就可以看到TensorBoard的界面。你可以在界面上选择不同的标签来查看不同的信息,例如`Scalars`可以显示损失和准确率的曲线,`Graphs`可以显示计算等。 这就是使用TensorBoard的基本步骤,你可以根据自己的需求在训练过程中记录不同的信息,并通过TensorBoard进行可视化分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值