Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
mmdetection3d
Commits
4073acf7
Commit
4073acf7
authored
Apr 27, 2020
by
zhangwenwei
Browse files
Fix target mean/std bugs
parent
4040dbda
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
23 additions
and
52 deletions
+23
-52
configs/kitti/dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
...igs/kitti/dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
+4
-4
configs/kitti/dv_second_secfpn_6x8_80e_kitti-3d-car.py
configs/kitti/dv_second_secfpn_6x8_80e_kitti-3d-car.py
+5
-5
configs/kitti/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
...igs/kitti/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
+4
-4
configs/kitti/hv_second_secfpn_6x8_80e_kitti-3d-car.py
configs/kitti/hv_second_secfpn_6x8_80e_kitti-3d-car.py
+4
-4
mmdet3d/models/anchor_heads/boxvelo_head.py
mmdet3d/models/anchor_heads/boxvelo_head.py
+1
-9
mmdet3d/models/anchor_heads/second_head.py
mmdet3d/models/anchor_heads/second_head.py
+0
-8
mmdet3d/models/anchor_heads/train_mixins.py
mmdet3d/models/anchor_heads/train_mixins.py
+4
-16
tools/slurm_train.sh
tools/slurm_train.sh
+1
-2
No files found.
configs/kitti/dv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
View file @
4073acf7
...
@@ -128,7 +128,7 @@ train_pipeline = [
...
@@ -128,7 +128,7 @@ train_pipeline = [
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
,
'gt_labels'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
,
'gt_labels
_3d
'
]),
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
...
@@ -136,7 +136,7 @@ test_pipeline = [
...
@@ -136,7 +136,7 @@ test_pipeline = [
type
=
'DefaultFormatBundle3D'
,
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
class_names
=
class_names
,
with_label
=
False
),
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
]),
]
]
data
=
dict
(
data
=
dict
(
...
@@ -177,13 +177,13 @@ optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
...
@@ -177,13 +177,13 @@ optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
# learning policy
lr_config
=
dict
(
lr_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
10
,
1e-4
]
,
target_ratio
=
(
10
,
1e-4
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
momentum_config
=
dict
(
momentum_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
0.85
/
0.95
,
1
]
,
target_ratio
=
(
0.85
/
0.95
,
1
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
...
...
configs/kitti/dv_second_secfpn_6x8_80e_kitti-3d-car.py
View file @
4073acf7
...
@@ -94,7 +94,7 @@ input_modality = dict(
...
@@ -94,7 +94,7 @@ input_modality = dict(
use_lidar
=
True
,
use_lidar
=
True
,
use_depth
=
False
,
use_depth
=
False
,
use_lidar_intensity
=
True
,
use_lidar_intensity
=
True
,
use_camera
=
Fals
e
,
use_camera
=
Tru
e
,
)
)
db_sampler
=
dict
(
db_sampler
=
dict
(
root_path
=
data_root
,
root_path
=
data_root
,
...
@@ -125,7 +125,7 @@ train_pipeline = [
...
@@ -125,7 +125,7 @@ train_pipeline = [
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
,
'gt_labels'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
,
'gt_labels
_3d
'
]),
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
...
@@ -133,7 +133,7 @@ test_pipeline = [
...
@@ -133,7 +133,7 @@ test_pipeline = [
type
=
'DefaultFormatBundle3D'
,
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
class_names
=
class_names
,
with_label
=
False
),
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
]),
]
]
data
=
dict
(
data
=
dict
(
...
@@ -173,13 +173,13 @@ optimizer = dict(type='AdamW', lr=lr, betas=(0.95, 0.99), weight_decay=0.01)
...
@@ -173,13 +173,13 @@ optimizer = dict(type='AdamW', lr=lr, betas=(0.95, 0.99), weight_decay=0.01)
optimizer_config
=
dict
(
grad_clip
=
dict
(
max_norm
=
10
,
norm_type
=
2
))
optimizer_config
=
dict
(
grad_clip
=
dict
(
max_norm
=
10
,
norm_type
=
2
))
lr_config
=
dict
(
lr_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
10
,
1e-4
]
,
target_ratio
=
(
10
,
1e-4
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
momentum_config
=
dict
(
momentum_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
0.85
/
0.95
,
1
]
,
target_ratio
=
(
0.85
/
0.95
,
1
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
...
...
configs/kitti/hv_pointpillars_secfpn_6x8_160e_kitti-3d-car.py
View file @
4073acf7
...
@@ -125,7 +125,7 @@ train_pipeline = [
...
@@ -125,7 +125,7 @@ train_pipeline = [
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
,
'gt_labels'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
,
'gt_labels
_3d
'
]),
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
...
@@ -133,7 +133,7 @@ test_pipeline = [
...
@@ -133,7 +133,7 @@ test_pipeline = [
type
=
'DefaultFormatBundle3D'
,
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
class_names
=
class_names
,
with_label
=
False
),
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
]),
]
]
data
=
dict
(
data
=
dict
(
...
@@ -178,13 +178,13 @@ optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
...
@@ -178,13 +178,13 @@ optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
# learning policy
# learning policy
lr_config
=
dict
(
lr_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
10
,
1e-4
]
,
target_ratio
=
(
10
,
1e-4
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
momentum_config
=
dict
(
momentum_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
0.85
/
0.95
,
1
]
,
target_ratio
=
(
0.85
/
0.95
,
1
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
...
...
configs/kitti/hv_second_secfpn_6x8_80e_kitti-3d-car.py
View file @
4073acf7
...
@@ -123,7 +123,7 @@ train_pipeline = [
...
@@ -123,7 +123,7 @@ train_pipeline = [
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'ObjectRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'PointShuffle'
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
,
'gt_labels'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
,
'gt_labels
_3d
'
]),
]
]
test_pipeline
=
[
test_pipeline
=
[
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
dict
(
type
=
'PointsRangeFilter'
,
point_cloud_range
=
point_cloud_range
),
...
@@ -131,7 +131,7 @@ test_pipeline = [
...
@@ -131,7 +131,7 @@ test_pipeline = [
type
=
'DefaultFormatBundle3D'
,
type
=
'DefaultFormatBundle3D'
,
class_names
=
class_names
,
class_names
=
class_names
,
with_label
=
False
),
with_label
=
False
),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes'
]),
dict
(
type
=
'Collect3D'
,
keys
=
[
'points'
,
'gt_bboxes
_3d
'
]),
]
]
data
=
dict
(
data
=
dict
(
...
@@ -171,13 +171,13 @@ optimizer = dict(type='AdamW', lr=lr, betas=(0.95, 0.99), weight_decay=0.01)
...
@@ -171,13 +171,13 @@ optimizer = dict(type='AdamW', lr=lr, betas=(0.95, 0.99), weight_decay=0.01)
optimizer_config
=
dict
(
grad_clip
=
dict
(
max_norm
=
10
,
norm_type
=
2
))
optimizer_config
=
dict
(
grad_clip
=
dict
(
max_norm
=
10
,
norm_type
=
2
))
lr_config
=
dict
(
lr_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
10
,
1e-4
]
,
target_ratio
=
(
10
,
1e-4
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
momentum_config
=
dict
(
momentum_config
=
dict
(
policy
=
'cyclic'
,
policy
=
'cyclic'
,
target_ratio
=
[
0.85
/
0.95
,
1
]
,
target_ratio
=
(
0.85
/
0.95
,
1
)
,
cyclic_times
=
1
,
cyclic_times
=
1
,
step_ratio_up
=
0.4
,
step_ratio_up
=
0.4
,
)
)
...
...
mmdet3d/models/anchor_heads/boxvelo_head.py
View file @
4073acf7
...
@@ -14,12 +14,6 @@ class Anchor3DVeloHead(SECONDHead):
...
@@ -14,12 +14,6 @@ class Anchor3DVeloHead(SECONDHead):
Args:
Args:
in_channels (int): Number of channels in the input feature map.
in_channels (int): Number of channels in the input feature map.
feat_channels (int): Number of channels of the feature map.
feat_channels (int): Number of channels of the feature map.
anchor_scales (Iterable): Anchor scales.
anchor_ratios (Iterable): Anchor aspect ratios.
anchor_strides (Iterable): Anchor strides.
anchor_base_sizes (Iterable): Anchor base sizes.
target_means (Iterable): Mean values of regression targets.
target_stds (Iterable): Std values of regression targets.
loss_cls (dict): Config of classification loss.
loss_cls (dict): Config of classification loss.
loss_bbox (dict): Config of localization loss.
loss_bbox (dict): Config of localization loss.
"""
# noqa: W605
"""
# noqa: W605
...
@@ -127,9 +121,7 @@ class Anchor3DVeloHead(SECONDHead):
...
@@ -127,9 +121,7 @@ class Anchor3DVeloHead(SECONDHead):
scores
=
scores
[
topk_inds
,
:]
scores
=
scores
[
topk_inds
,
:]
dir_cls_score
=
dir_cls_score
[
topk_inds
]
dir_cls_score
=
dir_cls_score
[
topk_inds
]
bboxes
=
self
.
bbox_coder
.
decode
(
anchors
,
bbox_pred
,
bboxes
=
self
.
bbox_coder
.
decode
(
anchors
,
bbox_pred
)
self
.
target_means
,
self
.
target_stds
)
mlvl_bboxes
.
append
(
bboxes
)
mlvl_bboxes
.
append
(
bboxes
)
mlvl_scores
.
append
(
scores
)
mlvl_scores
.
append
(
scores
)
mlvl_dir_scores
.
append
(
dir_cls_score
)
mlvl_dir_scores
.
append
(
dir_cls_score
)
...
...
mmdet3d/models/anchor_heads/second_head.py
View file @
4073acf7
...
@@ -19,12 +19,6 @@ class SECONDHead(nn.Module, AnchorTrainMixin):
...
@@ -19,12 +19,6 @@ class SECONDHead(nn.Module, AnchorTrainMixin):
Args:
Args:
in_channels (int): Number of channels in the input feature map.
in_channels (int): Number of channels in the input feature map.
feat_channels (int): Number of channels of the feature map.
feat_channels (int): Number of channels of the feature map.
anchor_scales (Iterable): Anchor scales.
anchor_ratios (Iterable): Anchor aspect ratios.
anchor_strides (Iterable): Anchor strides.
anchor_base_sizes (Iterable): Anchor base sizes.
target_means (Iterable): Mean values of regression targets.
target_stds (Iterable): Std values of regression targets.
loss_cls (dict): Config of classification loss.
loss_cls (dict): Config of classification loss.
loss_bbox (dict): Config of localization loss.
loss_bbox (dict): Config of localization loss.
"""
# noqa: W605
"""
# noqa: W605
...
@@ -216,8 +210,6 @@ class SECONDHead(nn.Module, AnchorTrainMixin):
...
@@ -216,8 +210,6 @@ class SECONDHead(nn.Module, AnchorTrainMixin):
anchor_list
,
anchor_list
,
gt_bboxes
,
gt_bboxes
,
input_metas
,
input_metas
,
self
.
target_means
,
self
.
target_stds
,
gt_bboxes_ignore_list
=
gt_bboxes_ignore
,
gt_bboxes_ignore_list
=
gt_bboxes_ignore
,
gt_labels_list
=
gt_labels
,
gt_labels_list
=
gt_labels
,
num_classes
=
self
.
num_classes
,
num_classes
=
self
.
num_classes
,
...
...
mmdet3d/models/anchor_heads/train_mixins.py
View file @
4073acf7
...
@@ -11,8 +11,6 @@ class AnchorTrainMixin(object):
...
@@ -11,8 +11,6 @@ class AnchorTrainMixin(object):
anchor_list
,
anchor_list
,
gt_bboxes_list
,
gt_bboxes_list
,
input_metas
,
input_metas
,
target_means
,
target_stds
,
gt_bboxes_ignore_list
=
None
,
gt_bboxes_ignore_list
=
None
,
gt_labels_list
=
None
,
gt_labels_list
=
None
,
label_channels
=
1
,
label_channels
=
1
,
...
@@ -24,8 +22,6 @@ class AnchorTrainMixin(object):
...
@@ -24,8 +22,6 @@ class AnchorTrainMixin(object):
anchor_list (list[list]): Multi level anchors of each image.
anchor_list (list[list]): Multi level anchors of each image.
gt_bboxes_list (list[Tensor]): Ground truth bboxes of each image.
gt_bboxes_list (list[Tensor]): Ground truth bboxes of each image.
img_metas (list[dict]): Meta info of each image.
img_metas (list[dict]): Meta info of each image.
target_means (Iterable): Mean value of regression targets.
target_stds (Iterable): Std value of regression targets.
Returns:
Returns:
tuple
tuple
...
@@ -57,8 +53,6 @@ class AnchorTrainMixin(object):
...
@@ -57,8 +53,6 @@ class AnchorTrainMixin(object):
gt_bboxes_ignore_list
,
gt_bboxes_ignore_list
,
gt_labels_list
,
gt_labels_list
,
input_metas
,
input_metas
,
target_means
=
target_means
,
target_stds
=
target_stds
,
label_channels
=
label_channels
,
label_channels
=
label_channels
,
num_classes
=
num_classes
,
num_classes
=
num_classes
,
sampling
=
sampling
)
sampling
=
sampling
)
...
@@ -89,8 +83,6 @@ class AnchorTrainMixin(object):
...
@@ -89,8 +83,6 @@ class AnchorTrainMixin(object):
gt_bboxes_ignore
,
gt_bboxes_ignore
,
gt_labels
,
gt_labels
,
input_meta
,
input_meta
,
target_means
,
target_stds
,
label_channels
=
1
,
label_channels
=
1
,
num_classes
=
1
,
num_classes
=
1
,
sampling
=
True
):
sampling
=
True
):
...
@@ -111,13 +103,12 @@ class AnchorTrainMixin(object):
...
@@ -111,13 +103,12 @@ class AnchorTrainMixin(object):
anchor_targets
=
self
.
anchor_target_single_assigner
(
anchor_targets
=
self
.
anchor_target_single_assigner
(
assigner
,
current_anchors
,
gt_bboxes
[
gt_per_cls
,
:],
assigner
,
current_anchors
,
gt_bboxes
[
gt_per_cls
,
:],
gt_bboxes_ignore
,
gt_labels
[
gt_per_cls
],
input_meta
,
gt_bboxes_ignore
,
gt_labels
[
gt_per_cls
],
input_meta
,
target_means
,
target_stds
,
label_channels
,
num_classes
,
label_channels
,
num_classes
,
sampling
)
sampling
)
else
:
else
:
anchor_targets
=
self
.
anchor_target_single_assigner
(
anchor_targets
=
self
.
anchor_target_single_assigner
(
assigner
,
current_anchors
,
gt_bboxes
,
gt_bboxes_ignore
,
assigner
,
current_anchors
,
gt_bboxes
,
gt_bboxes_ignore
,
gt_labels
,
input_meta
,
target_means
,
target_std
s
,
gt_labels
,
input_meta
,
label_channels
,
num_classe
s
,
label_channels
,
num_classes
,
sampling
)
sampling
)
(
labels
,
label_weights
,
bbox_targets
,
bbox_weights
,
(
labels
,
label_weights
,
bbox_targets
,
bbox_weights
,
dir_targets
,
dir_weights
,
pos_inds
,
neg_inds
)
=
anchor_targets
dir_targets
,
dir_weights
,
pos_inds
,
neg_inds
)
=
anchor_targets
...
@@ -156,8 +147,7 @@ class AnchorTrainMixin(object):
...
@@ -156,8 +147,7 @@ class AnchorTrainMixin(object):
else
:
else
:
return
self
.
anchor_target_single_assigner
(
return
self
.
anchor_target_single_assigner
(
self
.
bbox_assigner
,
anchors
,
gt_bboxes
,
gt_bboxes_ignore
,
self
.
bbox_assigner
,
anchors
,
gt_bboxes
,
gt_bboxes_ignore
,
gt_labels
,
input_meta
,
target_means
,
target_stds
,
gt_labels
,
input_meta
,
label_channels
,
num_classes
,
sampling
)
label_channels
,
num_classes
,
sampling
)
def
anchor_target_single_assigner
(
self
,
def
anchor_target_single_assigner
(
self
,
bbox_assigner
,
bbox_assigner
,
...
@@ -166,8 +156,6 @@ class AnchorTrainMixin(object):
...
@@ -166,8 +156,6 @@ class AnchorTrainMixin(object):
gt_bboxes_ignore
,
gt_bboxes_ignore
,
gt_labels
,
gt_labels
,
input_meta
,
input_meta
,
target_means
,
target_stds
,
label_channels
=
1
,
label_channels
=
1
,
num_classes
=
1
,
num_classes
=
1
,
sampling
=
True
):
sampling
=
True
):
...
...
tools/slurm_train.sh
View file @
4073acf7
#!/usr/bin/env bash
#!/usr/bin/env bash
set
-x
set
-x
export
PYTHONPATH
=
`
pwd
`
:
$PYTHONPATH
PARTITION
=
$1
PARTITION
=
$1
JOB_NAME
=
$2
JOB_NAME
=
$2
...
@@ -20,4 +19,4 @@ srun -p ${PARTITION} \
...
@@ -20,4 +19,4 @@ srun -p ${PARTITION} \
--ntasks-per-node
=
${
GPUS_PER_NODE
}
\
--ntasks-per-node
=
${
GPUS_PER_NODE
}
\
--kill-on-bad-exit
=
1
\
--kill-on-bad-exit
=
1
\
${
SRUN_ARGS
}
\
${
SRUN_ARGS
}
\
python
-u
tools/train.py
${
CONFIG
}
--work
_
dir
=
${
WORK_DIR
}
--launcher
=
"slurm"
${
PY_ARGS
}
python
-u
tools/train.py
${
CONFIG
}
--work
-
dir
=
${
WORK_DIR
}
--launcher
=
"slurm"
${
PY_ARGS
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment