使用tensorboardX可视化神经网络

本文介绍了如何在PyTorch中创建一个模型并使用TensorBoardX将其图形化,以便于可视化和理解模型架构。作者展示了如何使用SummaryWriter在指定目录中保存模型的计算图,并提供了终端操作以查看生成的TensorBoard可视化结果。
摘要由CSDN通过智能技术生成
#导入需要模块
from tensorboardX import SummaryWriter
import torch
import torch.nn as nn
import torchvision
#创建一个模型
class StemBlock(nn.Module):
    def __init__(self):
        super(StemBlock,self).__init__()
        self.stem_1 = nn.Conv2d(3,32,3,2,1)
        self.stem_2a = nn.Conv2d(32,16,1,1)
        self.stem_2b = nn.MaxPool2d(2,2)
        self.stem_2c = nn.Conv2d(16,32,3,2,1)
        self.stem_3 = nn.Conv2d(64,32,1)


    def forward(self,x):
        stem_1_out = self.stem_1(x)
        stem_2a_out = self.stem_2a(stem_1_out)
        stem_2c_out = self.stem_2c(stem_2a_out)
        stem_2b_out = self.stem_2b(stem_1_out)
        print(stem_2b_out.shape)
        print(stem_2c_out.shape)
        out = self.stem_3(torch.cat((stem_2b_out,stem_2c_out),1))
        
        return out
#把模型保存为graph

input = torch.randn(1, 3, 224, 224)
model = StemBlock()
with SummaryWriter(log_dir='./logs/',comment='test') as writer:
    writer.add_graph(model,input)

运行成功会在文件里出现下图的log

在终端输入以下内容

tensorboard --logdir ./logs/

会出现一个链接,点开链接

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用TensorBoard可视化特征图的示例代码: ```python import tensorflow as tf from tensorflow.python.ops import summary_ops_v2 # 构建模型 model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2,2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(10, activation='softmax') ]) # 定义输入和输出 input_data = tf.keras.layers.Input(shape=(28, 28, 1)) output_data = model(input_data) # 获取模型中的某一层 layer_name = 'conv2d' layer = model.get_layer(name=layer_name) # 创建一个函数来获取中间层的输出 intermediate_layer_model = tf.keras.models.Model(inputs=model.input, outputs=layer.output) # 准备数据 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() x_train = x_train.reshape(-1, 28, 28, 1).astype('float32') / 255 x_test = x_test.reshape(-1, 28, 28, 1).astype('float32') / 255 # 计算中间层的输出 intermediate_output = intermediate_layer_model.predict(x_train[:1]) # 创建一个TensorBoard回调函数 logdir = "logs/visualize_feature_map/" file_writer = tf.summary.create_file_writer(logdir) # 将特征图添加到TensorBoard中 with file_writer.as_default(): summary_ops_v2.image("feature_map", intermediate_output, max_outputs=1, step=0) # 启动TensorBoard tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1) # 训练模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test), callbacks=[tensorboard_callback]) ``` 在上面的代码中,我们首先构建了一个简单的卷积神经网络模型,并获取了其中的一个卷积层。然后,我们使用该卷积层创建了一个新的模型,该模型输出了该卷积层的输出。接着,我们使用该新模型计算了训练集中的第一张图片的中间层输出。最后,我们将该中间层输出添加到TensorBoard中,并启动了TensorBoard回调函数来监控训练过程。 当你使用代码运行后,你可以在命令行中输入以下命令来启动TensorBoard: ``` tensorboard --logdir logs/visualize_feature_map/ ``` 在TensorBoard中,你可以在“Images”标签下找到“feature_map”图像,这是卷积层的特征图。你可以通过拖动滑块来查看不同训练图像的特征图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值