欢迎访问宙启技术站
智能推送

使用tensorboard_logger在Python中实时可视化神经网络训练过程

发布时间:2024-01-09 09:27:15

Tensorboard是Tensorflow的一个可视化工具,可以帮助我们实时可视化神经网络的训练过程。Tensorboard Logger是一个第三方的Python库,提供了一个简单的接口,可以在Python中使用Tensorboard进行实时可视化。

下面是一个使用tensorboard_logger的示例,展示了如何在Python中实时可视化神经网络的训练过程。

步是安装tensorboard_logger库。可以使用pip命令进行安装:

pip install tensorboard_logger

第二步是导入必要的库和模块:

import tensorboard_logger as tb_logger
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torchvision.datasets import MNIST
from torchvision.transforms import ToTensor

第三步是定义神经网络模型:

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(128, 10)
        
    def forward(self, x):
        x = x.view(-1, 784)  # 将输入展平成一维向量
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

第四步是创建训练数据集:

train_dataset = MNIST(root='path_to_mnist_data', train=True, download=True, transform=ToTensor())

第五步是创建数据加载器:

batch_size = 64
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)

第六步是实例化神经网络模型和优化器:

model = Net()
optimizer = optim.SGD(model.parameters(), lr=0.01)

第七步是定义损失函数:

criterion = nn.CrossEntropyLoss()

第八步是在Tensorboard Logger中创建一个记录器:

logger = tb_logger.Logger(logdir='path_to_tensorboard_logs')

第九步是定义训练循环:

epochs = 10

for epoch in range(epochs):
    running_loss = 0.0
    
    for i, data in enumerate(train_loader):
        inputs, labels = data
        
        optimizer.zero_grad()
        
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        
        running_loss += loss.item()
        
        # 每100个batch,打印一次训练损失和可视化训练损失
        if (i+1) % 100 == 0:
            avg_loss = running_loss / 100
            print('[%d, %5d] loss: %.3f' % (epoch+1, i+1, avg_loss))
            
            # 更新tensorboard可视化
            logger.scalar_summary('train_loss', avg_loss, epoch * len(train_loader) + i)
            
            running_loss = 0.0

最后,在终端中运行以下命令,启动Tensorboard服务器:

tensorboard --logdir=path_to_tensorboard_logs

然后可以在浏览器中访问http://localhost:6006,即可实时查看训练损失的可视化结果。

以上是使用tensorboard_logger在Python中实时可视化神经网络训练过程的示例。通过使用Tensorboard Logger,我们可以方便地将训练过程中的各种指标(例如损失值、准确率等)可视化,从而更好地理解和分析神经网络的训练过程。