在Python中使用Wandbwatch()函数来监控您的机器学习实验
发布时间:2024-01-10 16:46:26
要在Python中使用Wandb.watch()函数来监控机器学习实验,您需要先安装wandb库。您可以使用以下命令来安装:
pip install wandb
然后,您需要导入wandb库并初始化它。您可以使用以下代码初始化wandb:
import wandb wandb.init(project="project-name")
注意,您需要将"project-name"替换为您自己的项目名称。
一旦您初始化了wandb,您就可以使用wandb.watch()函数开始监控您的机器学习实验。这个函数需要传入您要监控的模型对象。以下是一个使用wandb.watch()的示例代码:
import wandb
import torch
import torch.nn as nn
import torchvision
import torchvision.transforms as transforms
# 初始化wandb
wandb.init(project="mnist-example")
# 加载并预处理MNIST数据集
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))])
trainset = torchvision.datasets.MNIST(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64,
shuffle=True, num_workers=2)
testset = torchvision.datasets.MNIST(root='./data', train=False,
download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=64,
shuffle=False, num_workers=2)
# 定义简单的神经网络模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(784, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = x.view(-1, 784)
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
net = Net()
# 使用wandb.watch()监控模型
wandb.watch(net)
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
# 训练模型
for epoch in range(5): # 多次循环遍历数据集
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data
optimizer.zero_grad()
# 前向传播、反向传播和优化
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# 记录损失函数值
running_loss += loss.item()
if i % 200 == 199: # 每200个小批次打印一次损失函数值
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 200))
running_loss = 0.0
print('Finished Training')
将上面的代码保存为一个Python文件,并运行它。您将看到训练过程中打印的损失函数值,并且这些信息将被记录到wandb界面中。您可以在wandb界面中查看训练过程中损失函数的变化和其他指标的情况,例如准确率等。
希望这个例子能帮助您使用Wandb.watch()函数来监控您的机器学习实验!
