实现TensorBoard可视化网络的参数

前言

最近在做神经网络相关的实验,为了方便神经网络参数是否变化,学习一下TensorBoard可视化网络的参数的方法,这里使用pytorch实现。

实现

当使用PyTorch训练一个简单的神经网络时,可以使用TensorBoardX来可视化网络的参数。以下是一个简单的神经网络训练代码示例:

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.tensorboard import SummaryWriter

# 创建输入数据
x_train = torch.rand(100, 1)
y_train = x_train * 0.1 + 0.3

# 创建神经网络模型
class SimpleLinearModel(nn.Module):
    def __init__(self):
        super(SimpleLinearModel, self).__init__()
        self.linear = nn.Linear(1, 1)

    def forward(self, x):
        return self.linear(x)

model = SimpleLinearModel()

# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.5)

# 创建SummaryWriter对象
writer = SummaryWriter('logs')

# 训练神经网络
for epoch in range(201):
    inputs = x_train
    labels = y_train

    # 前向传播
    outputs = model(inputs)
    loss = criterion(outputs, labels)

    # 反向传播和优化
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    # 将权重和偏置写入到TensorBoard
    for name, param in model.named_parameters():
        writer.add_histogram(name, param, epoch)

writer.close()

在这个例子中,我们使用PyTorch构建了一个简单的线性模型,并使用TensorBoardX记录了权重和偏置的变化。在训练过程中,我们将参数数据写入到TensorBoard日志文件中,然后在命令行中运行TensorBoard,就可以在浏览器中查看神经网络参数的可视化结果了。

效果

在PyTorch中,您可以使用以下命令来运行TensorBoard:

tensorboard --logdir=logs

![logs](https://img-blog.csdnimg.cn/direct/6390a592cd1e4c1091d7ce91044f72da.png) 就是上面代码的名字

writer = SummaryWriter('logs')

我们在anaconda种运行上面的代码

在这里插入图片描述

复制红色的地址到浏览器 就可以看到效果图了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个使用TensorBoard训练过程的示例代码,其中包含了输入图片进行可的代码框架: ```python import tensorflow as tf from tensorflow.keras.layers import Input, Conv2D, BatchNormalization, Activation, MaxPooling2D, Flatten, Dense from tensorflow.keras.callbacks import TensorBoard # 定义模型结构 def model(input_shape, num_classes): input_tensor = Input(shape=input_shape) x = Conv2D(64, kernel_size=(3, 3), strides=(1, 1), padding='same')(input_tensor) x = BatchNormalization()(x) x = Activation('relu')(x) x = MaxPooling2D(pool_size=(2, 2))(x) x = Conv2D(128, kernel_size=(3, 3), strides=(1, 1), padding='same')(x) x = BatchNormalization()(x) x = Activation('relu')(x) x = MaxPooling2D(pool_size=(2, 2))(x) x = Flatten()(x) x = Dense(num_classes, activation='softmax')(x) model = tf.keras.models.Model(inputs=input_tensor, outputs=x) return model # 加载数据集 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() x_train = x_train.reshape(-1, 28, 28, 1) / 255.0 x_test = x_test.reshape(-1, 28, 28, 1) / 255.0 y_train = tf.keras.utils.to_categorical(y_train, num_classes=10) y_test = tf.keras.utils.to_categorical(y_test, num_classes=10) # 定义模型参数 input_shape = (28, 28, 1) num_classes = 10 batch_size = 128 epochs = 10 # 定义TensorBoard回调函数 tb_callback = TensorBoard(log_dir='./logs', histogram_freq=1, write_graph=True, write_images=True) # 定义模型 model = model(input_shape, num_classes) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型,并使用TensorBoard训练过程 model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test, y_test), callbacks=[tb_callback]) ``` 该代码定义了一个简单的卷积神经网络模型,使用MNIST数据集进行训练,并使用TensorBoard训练过程。其中,`model`函数定义了模型结构,`TensorBoard`回调函数定义了可参数,例如记录日志的路径、直方图的频率和是否记录模型图等。在训练模型时,将`TensorBoard`回调函数传递给`fit`方法的`callbacks`参数,即可实现使用TensorBoard训练过程。此外,为了输入图片进行可,还需要在`TensorBoard`回调函数中将`write_images`参数设置为`True`,这样训练过程中的输入图片会被记录到TensorBoard日志中。最后,在终端中运行以下命令即可启动TensorBoard进行可: ``` tensorboard --logdir=./logs ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韭菜盖饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值