Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yolov5
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
yolov5
Commits
0cae7576
Unverified
提交
0cae7576
authored
4月 10, 2021
作者:
Glenn Jocher
提交者:
GitHub
4月 10, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
utils/wandb_logging PEP8 reformat (#2755)
* wandb_logging PEP8 reformat * Update wandb_utils.py
上级
b5de52c4
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
8 行增加
和
11 行删除
+8
-11
log_dataset.py
utils/wandb_logging/log_dataset.py
+1
-3
wandb_utils.py
utils/wandb_logging/wandb_utils.py
+7
-8
没有找到文件。
utils/wandb_logging/log_dataset.py
浏览文件 @
0cae7576
import
argparse
import
argparse
from
pathlib
import
Path
import
yaml
import
yaml
from
wandb_utils
import
WandbLogger
from
wandb_utils
import
WandbLogger
from
utils.datasets
import
LoadImagesAndLabels
WANDB_ARTIFACT_PREFIX
=
'wandb-artifact://'
WANDB_ARTIFACT_PREFIX
=
'wandb-artifact://'
...
@@ -21,6 +19,6 @@ if __name__ == '__main__':
...
@@ -21,6 +19,6 @@ if __name__ == '__main__':
parser
.
add_argument
(
'--single-cls'
,
action
=
'store_true'
,
help
=
'train as single-class dataset'
)
parser
.
add_argument
(
'--single-cls'
,
action
=
'store_true'
,
help
=
'train as single-class dataset'
)
parser
.
add_argument
(
'--project'
,
type
=
str
,
default
=
'YOLOv5'
,
help
=
'name of W&B Project'
)
parser
.
add_argument
(
'--project'
,
type
=
str
,
default
=
'YOLOv5'
,
help
=
'name of W&B Project'
)
opt
=
parser
.
parse_args
()
opt
=
parser
.
parse_args
()
opt
.
resume
=
False
# Explicitly disallow resume check for dataset upload J
ob
opt
.
resume
=
False
# Explicitly disallow resume check for dataset upload j
ob
create_dataset_artifact
(
opt
)
create_dataset_artifact
(
opt
)
utils/wandb_logging/wandb_utils.py
浏览文件 @
0cae7576
import
argparse
import
json
import
json
import
os
import
shutil
import
sys
import
sys
from
pathlib
import
Path
import
torch
import
torch
import
yaml
import
yaml
from
datetime
import
datetime
from
pathlib
import
Path
from
tqdm
import
tqdm
from
tqdm
import
tqdm
sys
.
path
.
append
(
str
(
Path
(
__file__
)
.
parent
.
parent
.
parent
))
# add utils/ to path
sys
.
path
.
append
(
str
(
Path
(
__file__
)
.
parent
.
parent
.
parent
))
# add utils/ to path
...
@@ -33,6 +30,7 @@ def check_wandb_config_file(data_config_file):
...
@@ -33,6 +30,7 @@ def check_wandb_config_file(data_config_file):
return
wandb_config
return
wandb_config
return
data_config_file
return
data_config_file
def
get_run_info
(
run_path
):
def
get_run_info
(
run_path
):
run_path
=
Path
(
remove_prefix
(
run_path
,
WANDB_ARTIFACT_PREFIX
))
run_path
=
Path
(
remove_prefix
(
run_path
,
WANDB_ARTIFACT_PREFIX
))
run_id
=
run_path
.
stem
run_id
=
run_path
.
stem
...
@@ -40,6 +38,7 @@ def get_run_info(run_path):
...
@@ -40,6 +38,7 @@ def get_run_info(run_path):
model_artifact_name
=
'run_'
+
run_id
+
'_model'
model_artifact_name
=
'run_'
+
run_id
+
'_model'
return
run_id
,
project
,
model_artifact_name
return
run_id
,
project
,
model_artifact_name
def
check_wandb_resume
(
opt
):
def
check_wandb_resume
(
opt
):
process_wandb_config_ddp_mode
(
opt
)
if
opt
.
global_rank
not
in
[
-
1
,
0
]
else
None
process_wandb_config_ddp_mode
(
opt
)
if
opt
.
global_rank
not
in
[
-
1
,
0
]
else
None
if
isinstance
(
opt
.
resume
,
str
):
if
isinstance
(
opt
.
resume
,
str
):
...
@@ -53,6 +52,7 @@ def check_wandb_resume(opt):
...
@@ -53,6 +52,7 @@ def check_wandb_resume(opt):
return
True
return
True
return
None
return
None
def
process_wandb_config_ddp_mode
(
opt
):
def
process_wandb_config_ddp_mode
(
opt
):
with
open
(
opt
.
data
)
as
f
:
with
open
(
opt
.
data
)
as
f
:
data_dict
=
yaml
.
load
(
f
,
Loader
=
yaml
.
SafeLoader
)
# data dict
data_dict
=
yaml
.
load
(
f
,
Loader
=
yaml
.
SafeLoader
)
# data dict
...
@@ -77,7 +77,6 @@ def process_wandb_config_ddp_mode(opt):
...
@@ -77,7 +77,6 @@ def process_wandb_config_ddp_mode(opt):
opt
.
data
=
ddp_data_path
opt
.
data
=
ddp_data_path
class
WandbLogger
():
class
WandbLogger
():
def
__init__
(
self
,
opt
,
name
,
run_id
,
data_dict
,
job_type
=
'Training'
):
def
__init__
(
self
,
opt
,
name
,
run_id
,
data_dict
,
job_type
=
'Training'
):
# Pre-training routine --
# Pre-training routine --
...
@@ -110,8 +109,8 @@ class WandbLogger():
...
@@ -110,8 +109,8 @@ class WandbLogger():
if
self
.
job_type
==
'Dataset Creation'
:
if
self
.
job_type
==
'Dataset Creation'
:
self
.
data_dict
=
self
.
check_and_upload_dataset
(
opt
)
self
.
data_dict
=
self
.
check_and_upload_dataset
(
opt
)
else
:
else
:
pr
int
(
f
"{colorstr('wandb: ')}Install Weights & Biases for YOLOv5 logging with 'pip install wandb' (recommended)"
)
pr
efix
=
colorstr
(
'wandb: '
)
print
(
f
"{prefix}Install Weights & Biases for YOLOv5 logging with 'pip install wandb' (recommended)"
)
def
check_and_upload_dataset
(
self
,
opt
):
def
check_and_upload_dataset
(
self
,
opt
):
assert
wandb
,
'Install wandb to upload dataset'
assert
wandb
,
'Install wandb to upload dataset'
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论