wandb学习

本地

这里基于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有问题)
wandb学习_第1张图片
第一次会让你注册一个账号,但是神奇的是,这个账号和官网的账号没有任何关联
wandb学习_第2张图片
注册完了记一下账号密码
当然如果忘记了密码,可以

docker exec -it wandb-local bash

然后输入你的邮箱
然后修改密码
就可以了
(不知道如果忘记了邮箱该咋整)
参考https://community.wandb.ai/t/forgot-password-in-local/1959
在这里插入图片描述

然后会有这个
把底下的key复制一下

wandb学习_第3张图片
贴到这里
回车
wandb学习_第4张图片

接着就可以写代码了

#!/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)

wandb学习_第5张图片
wandb学习_第6张图片
wandb学习_第7张图片
接着我们把名字改一下(init底下的name)
然后改一下输出
再跑一下
可以在project那找到我们的总的信息
wandb学习_第8张图片
归类

#!/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学习_第9张图片

本地数据同步到云端

这里只同步到wandb.ai
(没试过自己搭建服务器)

wandb login --cloud
wandb sync xxx

这个xxx是wandb下你存储的名字
比如说下面这个图,你要同步最后一个,那就是

wandb sync F:\wandb\run-20220123_163503-3cf4shpk

wandb学习_第10张图片
最后如果想切回本地,目前找到一种方法是

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学习_第11张图片
注意最后一句,然后打一遍

wandb sync xxx

云端数据放到本地

找到的一种方法是
先把wandb的目录从训练的那个服务器复制到本地
比如说,下载完是这样
wandb学习_第12张图片
然后同样

wandb sync xxx

就行了
比如说

wandb sync F:\wandb\run-20220123_163503-3cf4shpk

自己搭建服务器

再说吧

你可能感兴趣的:(安装与配置,ubuntu,docker,linux)