这里基于ubuntu,当然win10也可以,只是第一次非常慢(大概进入那个页面花了5-6分钟)
安装docker
win:https://www.docker.com/get-started
ubuntu:https://blog.csdn.net/qq_39942341/article/details/121654061
安装
pip install wandb
启动docker,默认8080端口
wandb local
当然你也可以用其他端口
wandb local -p 8081
如果win10你卡的实在太久可以试试用这一句启动
wandb local -e LOCAL_RESTORE=true
然后就可以点击火箭旁边的地址
localhost:8080
(或者localhost:端口)
(我试了一下win10,大概需要5-6分钟才能进入页面,很容易以为wandb有问题)
第一次会让你注册一个账号,但是神奇的是,这个账号和官网的账号没有任何关联
注册完了记一下账号密码
当然如果忘记了密码,可以
docker exec -it wandb-local bash
然后输入你的邮箱
然后修改密码
就可以了
(不知道如果忘记了邮箱该咋整)
参考https://community.wandb.ai/t/forgot-password-in-local/1959
然后会有这个
把底下的key复制一下
接着就可以写代码了
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import os
import wandb
data_save_dir = '/data/wandb'
os.makedirs(data_save_dir, exist_ok=True)
wandb.init(
project="my-test-project", # 项目名字
name="first", # 项目底下每一次训练的名字
dir=data_save_dir # 文件保存的位置
)
# 配置的参数(可以把超参数放在这里)
wandb.config.update({
"learning_rate": 0.001,
"epochs": 100,
"batch_size": 128
})
for i in range(10):
if i & 1:
# 前面的字典是纵坐标数据,step是横坐标
wandb.log({'i': i, 'j': i + 1}, step=i)
接着我们把名字改一下(init底下的name)
然后改一下输出
再跑一下
可以在project那找到我们的总的信息
归类
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import wandb
import random
random.seed(1)
wandb.init(
project="my-test-project2"
)
wandb.config.update({
"learning_rate": 0.001,
"epochs": 100,
"batch_size": 128
})
wandb.define_metric("train/*")
wandb.define_metric("val/*")
for i in range(10):
log_dict = {
"train/loss": random.uniform(0, 1 / (i + 1)),
"train/acc": random.uniform(0, 1 / (i + 1)),
"val/loss": random.uniform(1 / (i + 1), 1),
"val/acc": random.uniform(1 / (i + 1), 1),
}
wandb.log(log_dict)
这里只同步到wandb.ai
(没试过自己搭建服务器)
wandb login --cloud
wandb sync xxx
这个xxx是wandb下你存储的名字
比如说下面这个图,你要同步最后一个,那就是
wandb sync F:\wandb\run-20220123_163503-3cf4shpk
wandb init
wandb local
目前只知道怎么同步到wandb.ai那个网站上
没试过同步到自己搭建的
先注册账号,然后也是会有一个key
如果你是想边训练边同步到云端,就在wandb.init前打这一句
os.environ["WANDB_API_KEY"] = 'xxxxxxxxxxxxxxxxxxx' # 官网给你的key
wandb.login() # 登录
# 剩下代码和本地的一样
这里的os.environ[“WANDB_API_KEY”]可写可不写,不写到时候也会叫你输入
举个例子
```python
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import os
import wandb
data_save_dir = '/data/wandb'
os.makedirs(data_save_dir, exist_ok=True)
os.environ["WANDB_API_KEY"] = 'xxxxxxxxxxxxxxxxxxx' # 官网给你的key
wandb.login() # 登录
wandb.init(
project="my-test-project", # 项目名字
name="first", # 项目底下每一次训练的名字
dir=data_save_dir # 文件保存的位置
)
# 配置的参数(可以把超参数放在这里)
wandb.config.update({
"learning_rate": 0.001,
"epochs": 100,
"batch_size": 128
})
for i in range(10):
if i & 1:
# 前面的字典是纵坐标数据,step是横坐标
wandb.log({'i': i, 'j': i + 1}, step=i)
如果你是想训练完了再同步到云端,
os.environ["WANDB_API_KEY"] = 'xxxxxxxxxxxxxxxxxxx' # 官网给你的key
os.environ["WANDB_MODE"] = "offline" # 离线
# 剩下代码和本地的一样
举个例子
```python
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import os
import wandb
data_save_dir = '/data/wandb'
os.makedirs(data_save_dir, exist_ok=True)
os.environ["WANDB_API_KEY"] = 'xxxxxxxxxxxxxxxxxxx' # 官网给你的key
os.environ["WANDB_MODE"] = "offline" # 离线
wandb.init(
project="my-test-project", # 项目名字
name="first", # 项目底下每一次训练的名字
dir=data_save_dir # 文件保存的位置
)
# 配置的参数(可以把超参数放在这里)
wandb.config.update({
"learning_rate": 0.001,
"epochs": 100,
"batch_size": 128
})
for i in range(10):
if i & 1:
# 前面的字典是纵坐标数据,step是横坐标
wandb.log({'i': i, 'j': i + 1}, step=i)
wandb sync xxx
找到的一种方法是
先把wandb的目录从训练的那个服务器复制到本地
比如说,下载完是这样
然后同样
wandb sync xxx
就行了
比如说
wandb sync F:\wandb\run-20220123_163503-3cf4shpk
再说吧