实验管理的学习笔记

1. 常见配置文件格式

1.2 XML: Extensible Markup Language

.xml文件可以用浏览器直接打开查看;

2. 参数管理——hydra

可以使用hydra库来进行参数配置;

3. 配置文件对比

3.1 Vimdiff:在终端进行文件对比

使用

vimdiff file1 file2

在终端显示file1和file2的不同之处;
关于vimdiff的相关具体的使用方法,请参考rollingstarky的博文《vimdiff 命令使用介绍》(以下简称为“vimdiff介绍”);
我们参照“vimdiff介绍”来进行学习,首先看看vimdiff的显示规则:
vimdiff file1 file2
从图中可以看到vimdiff的显示有如下特点,

  • 单独存在的行背景色标记为蓝色,而另一文件中的对应位置则被标记为绿色,(或者说,相对于另一个文件,当前文件中“多余”的行标记为蓝色,“缺少”的行则标记为绿色)
  • 同时存在但是内容有差异的行,都标记为粉色,而引起差异的文字记为红色。

4. 实验记录:

4.1 TensorBoard

from torch.utils.tensorboard import SummaryWriter
import numpy as np

writer = SummaryWriter()

for n_iter in range(100):
    writer.add_scalar('Loss/train', np.random.random(), n_iter)
    writer.add_scalar('Loss/test', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/val', np.random.random(), n_iter)

4.2 Wandb

Wandb: Weights & Biases | Quickstart

4.2.1 常见API

Wandb.init():初始化项目记录器
import wandb # 引入wandb
wandb.init(project="my_project_name", name="curr_run")
# name表示此次运行的名称

project表示当前项目的名称,会显示在面板的Projects中,如图所示
在这里插入图片描述

Wandb.config:记录当前运行的超参数
# 更新超参数信息
wandb.config.update({"learning_rate": 0.001,
                     "epochs": 100,
                     "batch_size": 128})
Wandb.log:在迭代过程中记录日志信息
# 记录损失函数值
wandb.log({"loss": 99})
# 在字典中记录多个信息
wandb.log({
	"Test Accuracy": 100. * correct / len(data_loader.dataset),
	"Test Loss": test_loss})

4.2.2 Numbers

对于数值型指标,wandb可以显示指标的折线图:
在这里插入图片描述

4.2.3 Images

Wandb支持保存图像的数组:

list_images =[]
list_images.append(wandb.Image("下载.jpeg", caption="Input image"))
list_images.append(wandb.Image("下载.jpeg", caption="Input image"))
list_images.append(wandb.Image("下载.jpeg", caption="Input image"))
wandb.log({
    "images_examples": list_images, })

效果如图所示,
在这里插入图片描述

4.2.4 修改已有run的日志信息:run.update()

import wandb
api = wandb.Api()

run = api.run("songyuc/my_project_name/<run_id>")
run.config["key"] = updated_value
run.update()

4.2.5 代码版本管理

5. 备注

5.1 yacs:参数配置库 (Deprecated)

我们已经弃用了这个参数配置的package,已经根据其GitHub[yacs]显示,最近的更新在“2020年8月11日”,基本可以认为这个项目已经停止维护了。

安装yacs

使用命令

conda install yacs

参数设置

使用yacs进行参数管理的使用样例

# 引入配置节点类CfgNode
from yacs.config import CfgNode as CN
# 新建根节点
_C = CN()
_C.BATCH_SIZE = 256 # batch_size
_C.DATA = 'coco' # dataset name

获取参数信息

cfg = _C
# 输出config中的batch-size大小
print(cfg.BATCH_SIZE)

修改配置参数

使用cfg.merge_from_list函数来修改配置参数,

opts = ["BATCH_SIZE", "512"]
cfg.merge_from_list(opts)
print(cfg)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值