运行下面链接的 colab,出现以下错误:
“wandb 后端进程已关闭”
我没有发现 Colab 使用 wandb 的方式有任何可疑之处,而且我找不到任何有同样问题的人。任何帮助是极大的赞赏。我在colab中使用最新版本的wandb。
这是我设置wandb的地方:
if WANDB:
wandb.login()
Run Code Online (Sandbox Code Playgroud)
这是我收到错误的部分:
#setup wandb if we're using it
if WANDB:
experiment_name = os.environ.get("EXPERIMENT_NAME")
group = experiment_name if experiment_name != "none" else wandb.util.generate_id()
cv_scores = []
oof_data_frame = pd.DataFrame()
for fold in range(1, config.folds + 1):
print(f"Fold {fold}/{config.folds}", end="\n"*2)
fold_directory = os.path.join(config.output_directory, f"fold_{fold}")
make_directory(fold_directory)
model_path = os.path.join(fold_directory, "model.pth")
model_config_path = os.path.join(fold_directory, "model_config.json")
checkpoints_directory = os.path.join(fold_directory, "checkpoints/")
make_directory(checkpoints_directory)
#Data collators are objects that will form a batch by using a …
Run Code Online (Sandbox Code Playgroud) 我正在尝试 wandb 库并运行,wandb.watch
但这似乎不适用于我的代码。它不应该太复杂,所以我很困惑为什么它不起作用。
代码:
"""
https://docs.wandb.ai/guides/track/advanced/distributed-training
import wandb
# 1. Start a new run
wandb.init(project='playground', entity='brando')
# 2. Save model inputs and hyperparameters
config = wandb.config
config.learning_rate = 0.01
# 3. Log gradients and model parameters
wandb.watch(model)
for batch_idx, (data, target) in enumerate(train_loader):
...
if batch_idx % args.log_interval == 0:
# 4. Log metrics to visualize performance
wandb.log({"loss": loss})
Notes:
- call wandb.init and wandb.log only from the leader process
"""
from argparse import Namespace
from pathlib import …
Run Code Online (Sandbox Code Playgroud) 我正在使用权重和偏差(wandb)。我想在使用增量日志记录时将多个图分组为一个图,有什么方法可以做到这一点吗?
假设我们有 10 个指标,我可以将它们增量添加到项目中,逐步构建 10 个图表:
import wandb
import math
N_STEPS = 100
wandb.init(project="someProject", name="testMultipleLines")
for epoch in range(N_STEPS):
log = {}
log['main_metric'] = epoch / N_STEPS # some main metric
# some other metrics I want to have all on 1 plot
other_metrics = {}
for j in range(10):
other_metrics[f'metric_{j}'] = math.sin(j * math.pi * (epoch / N_STEPS))
log['other_metrics'] = other_metrics
wandb.log(log)
Run Code Online (Sandbox Code Playgroud)
默认情况下,它在 wandb 界面上显示为 11 个不同的图。如何通过 API(不使用 Web 界面)对它们进行分组,以便main_metric
在一个图形上将它们全部other_metrics
集中在第二个图形上?
我最近安装了权重和偏差(wandb)来记录我的机器学习项目的指标。连接到 wandb 云实例或使用本地 Docker 映像时,一切正常。现在,当我尝试通过网络访问本地 wandb 实例时,我开始收到 API 错误消息。但是,我还注意到 wandb 尝试使用端口 80 而不是 8080 访问我的服务器。我在新的云服务器上安装了 wandb 客户端,并尝试从那里访问我的服务器。尽管如此,同样的错误消息如下所示。
当我使用以下命令时会发生此错误:wandb login host=https://api.wandb.ai
我尝试删除存储 api 设置的 .netrc 文件并重新安装 wandb。还是同样的错误。在 Ubuntu 18.04 上使用 wandb 版本 0.10.2;另外,尝试降级到版本0.8.36,没有变化。如果我尝试命令:wandb login --relogin
,我会得到同样的错误。
有没有办法重置 wandb,使其忘记所有这些设置,或者直接解决此问题?
非常感谢
此致,
阿迪尔
Retry attempt failed:
Traceback (most recent call last):
File "/media/adeel/Space/AI/anaconda3/envs/tf2_gpu/lib/python3.7/site-packages/urllib3/connection.py", line 160, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/media/adeel/Space/AI/anaconda3/envs/tf2_gpu/lib/python3.7/site-packages/urllib3/util/connection.py", line 84, in create_connection
raise err
File "/media/adeel/Space/AI/anaconda3/envs/tf2_gpu/lib/python3.7/site-packages/urllib3/util/connection.py", line 74, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused …
Run Code Online (Sandbox Code Playgroud) 我正在使用 cleanrl 库,特别是脚本dqn_atari.py dqn_atari.py,我按照 说明进行操作以保存和加载目标和 Q 网络。
\n我在 conda 环境中本地运行它。
\n我之前没有加载过东西,所以错误可能是由于我的 wandb 配置造成的。错误为“wandb:错误访问 wandb_entity/wandb_project_name/project_id 的权限被拒绝”并出现在网上:
\nmodel = run.file("agent.pt")\n
Run Code Online (Sandbox Code Playgroud)\n完整的输出是:
\nwandb: Currently logged in as: elena (use `wandb login --relogin` to force relogin)\n wandb: Tracking run with wandb version 0.12.15\nwandb: Run data is saved locally in /home/elena/workspace/playground/cleanrl/wandb/run-20220424_180429-2moec0qp\nwandb: Run `wandb offline` to turn off syncing.\nwandb: Resuming run BreakoutNoFrameskip-v4__dqn-save__1__1650816268\nwandb: \xe2\xad\x90 View project at https://wandb.ai/elena/test\nwandb: View run at https://wandb.ai/elena/test/runs/2moec0qp\nA.L.E: Arcade Learning Environment (version 0.7.4+069f8bd)\n[Powered by Stella]\n/home/elena/anaconda3/envs/cleanrl/lib/python3.8/site-packages/stable_baselines3/common/buffers.py:219: UserWarning: …
Run Code Online (Sandbox Code Playgroud) 我正在训练 keras 模型并为优化器使用自定义学习率调度程序(类型为 tf.keras.optimizers.schedules.LearningRateSchedule),并且我想通过权重和偏差框架记录学习率变化。我找不到如何将其传递给 WandbCallback 对象或以任何方式记录它
我编写了一个 MLflow 组件来将工件从 URL 上传并记录到 WandB。我正在尝试在 conda 环境中运行脚本,但不幸的是我遇到了这个错误
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\__init__.py", line 38, in <module>
from wandb import sdk as wandb_sdk
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\sdk\__init__.py", line 12, in <module>
from .wandb_init import init # noqa: F401
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\sdk\wandb_init.py", line 29, in <module>
from .backend.backend import Backend
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\sdk\backend\backend.py", line 18, in <module>
from ..internal.internal import wandb_internal
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\sdk\internal\internal.py", line 34, in <module>
from . import sender
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\sdk\internal\sender.py", line 18, in <module>
from wandb.filesync.dir_watcher import DirWatcher
File "C:\anaconda\envs\mlflow-4b67c93d2a95df2e00cbf3c9f644d2e3dada00e0\lib\site-packages\wandb\filesync\dir_watcher.py", line 10, in <module>
wd_polling …
Run Code Online (Sandbox Code Playgroud) wandb 文档似乎没有解释如何做到这一点 - 但它应该是我想象的一个相当常见的用例?
我像这样实现了大部分(但不是完全)我想要的,但看起来有点笨拙?self.aliases
我本来期望在这些实例上拥有财产ArtifactCollection
吗?
更新:它似乎确实是> = v0.13.10的sdk的一部分: https://github.com/wandb/wandb/blob/v0.13.10/wandb/apis/public.py#L4050-L4053
ENTITY = os.environ.get("WANDB_ENTITY")
API_KEY = os.environ.get("WANDB_API_KEY")
def get_model_artifacts(key=None):
wandb.login(key=key if key is not None else API_KEY)
api = wandb.Api(overrides={"entity": ENTITY})
model_names = [
i
for i in api.artifact_type(
type_name="models", project="train"
).collections()
]
for model in model_names:
artifact = api.artifact("train/" + model.name + ":latest")
model._attrs.update(artifact._attrs)
model._attrs["metadata"] = json.loads(model._attrs["metadata"])
model.aliases = [x["alias"] for x in model._attrs["aliases"]]
return model_names
Run Code Online (Sandbox Code Playgroud)
我想如果需要的话我可能会考虑编写一个自定义的 graph-ql 查询,或者只是使用这种笨重的方法。
我错过了什么吗?有没有更干净的方法来做到这一点?
这个笨重的方法缺少的一件事是任何旧的别名 - 它只显示最新的模型,然后显示该模型的任何别名(比如说“最新”和“v4”等) - 不确定这将/应该如何显示,但是我希望也能够获得旧的别名(即指向旧版本工件的别名)。虽然,这不太重要。
编辑- …
我正在使用权重和偏差(链接)来管理超参数优化并记录结果。我正在使用带有 Tensorflow 后端的 Keras 进行训练,并且正在使用权重和偏差的开箱即用日志记录功能,我在其中运行
wandb.init(project='project_name', entity='username', config=config)
Run Code Online (Sandbox Code Playgroud)
然后将 a 添加WandbCallback()
到 的回调中classifier.fit()
。默认情况下,权重和偏差似乎会保存模型参数(即模型的权重和偏差)并将其存储在云中。这会耗尽我帐户的存储配额,而且是不必要的——我只关心跟踪模型损失/准确性作为超参数的函数。
我是否可以训练模型并使用权重和偏差记录损失和准确性,但不将模型参数存储在云中?我怎样才能做到这一点?
我正在使用 Keras 进行基于云的权重和偏差扫描。因此,首先我在 W&B 项目中创建一个新的 Sweep,其配置如下:
description: LSTM Model
method: random
metric:
goal: maximize
name: val_accuracy
name: LSTM-Sweep
parameters:
batch_size:
distribution: int_uniform
max: 128
min: 32
epochs:
distribution: constant
value: 200
node_size1:
distribution: categorical
values:
- 64
- 128
- 256
node_size2:
distribution: categorical
values:
- 64
- 128
- 256
node_size3:
distribution: categorical
values:
- 64
- 128
- 256
node_size4:
distribution: categorical
values:
- 64
- 128
- 256
node_size5:
distribution: categorical
values:
- 64
- 128
- …
Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 上使用具有以下配置的虚拟机:
\nMemory 7.8 GiB\nProcessor Intel\xc2\xae Core\xe2\x84\xa2 i5-6600K CPU @ 3.50GHz \xc3\x97 3\nGraphics llvmpipe (LLVM 11.0.0, 256 bits)\nDisk Capcity 80.5 GB\nOS Ubuntu 20.10 64 Bit\nVirtualization Oracle\n
Run Code Online (Sandbox Code Playgroud)\n我按照官方文档中的描述为Ubuntu安装了docker 。\n我按照docker 的 yolo github 部分
所述提取了 docker 映像。\n由于我没有 NVIDIA GPU,因此无法安装驱动程序或 CUDA。\n我从roboflow中提取了水族馆并将其安装在折叠水族馆上。\n我运行此命令来启动图像并安装了我的水族馆文件夹
sudo docker run --ipc=host -it -v "$(pwd)"/Desktop/yolo/aquarium:/usr/src/app/aquarium ultralytics/yolov5:latest\n
Run Code Online (Sandbox Code Playgroud)\n并受到了这个横幅的欢迎
\n\n=============\n== PyTorch ==
\nNVIDIA 版本 21.03(内部版本 21060478)PyTorch 版本 1.9.0a0+df837d0
\n容器映像版权所有 (c) 2021,NVIDIA CORPORATION。保留所有权利。
\n版权所有 (c) 2014-2021 Facebook Inc. …
我有以下代码,用于使用 WandB API 记录每个时期的训练和验证损失。但我不确定为什么我没有在同一时期得到 val 损失和训练损失。知道如何解决这个问题吗?
wandb.log({"train loss": train_epoch_loss,
"val loss": val_epoch_loss,
"epoch": epoch})
wandb.log({"train acc": train_epoch_acc,
"val acc": val_epoch_acc,
"epoch": epoch})
wandb.log({"best val acc": best_acc, "epoch": epoch})
Run Code Online (Sandbox Code Playgroud)