在基本的pytorch tutorial之后,我尝试使用不同的CNN架构(不同的层数、每层的通道数等),我希望组织起来,所以我尝试使用wandb
。
我正在寻找一种简单的方法来尝试不同的体系结构,并保存两种结果(准确性)。目前我拥有的是一个代码片段,它允许我保存模型及其权重,但我还需要一种方法来重现我的结果,包括重现我的类的代码(我可以,使用repr(model)
保存模型参数,但不是类本身的代码,这是不幸的)。
有没有更好的方法来管理我的实验,并轻松地复制我的结果,包括类的代码?我考虑使用inspect
模块来保存源代码,但我都不确定这是最好的方法,谷歌colab不支持这个模块。
这是我目前拥有的代码:
torch.manual_seed(0)
# MODEL DESCRIPTION
class Net(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = torch.flatten(x, 1) # flatten all dimensions except batch
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
model = Net()
model_desc = repr(model)
# TRAINING....
# EVALUATING...
accureacy = ...
# SAVE RESULTS
run = wandb.init(project='test-project', name=model_desc)
artifact = wandb.Artifact('model', type='model')
artifact.add_file(MODEL_PATH)
# 2. Save mode inputs and hyperparameters
config = run.config
config.test_number = 1
config.model_desc = model_desc
# 3. Log metrics over time to visualize performance
run.log({"accuracy": accuracy})
# 4. Log an artifact to W&B
run.log_artifact(artifact)
run.finish()
1条答案
按热度按时间v8wbuo2f1#
Scott来自W&B这里。我们有一个新的特性叫做Launch,你可以用
run.log_code()
记录你的代码,然后通过UI启动它。run.log_code()
记录代码并在“Jobs”选项卡中查看wandb launch-agent -q <queue-name>
https://docs.wandb.ai/guides/launch