Hello,
I want to train model with different hyperparameters so I changed the hyperparameter of cfg.data.train like img_scale in the loop but I get the below error:
raceback (most recent call last):
File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/yapf_api.py", line 183, in FormatCode
tree = pytree_utils.ParseCodeToTree(unformatted_source)
File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/pytree_utils.py", line 131, in ParseCodeToTree
raise e
File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/pytree_utils.py", line 129, in ParseCodeToTree
ast.parse(code)
File "/miniconda3/envs/myenv/lib/python3.7/ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "", line 152
config='dataset_type = 'DOTADataset'
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "tools/train.py", line 211, in
main()
File "tools/train.py", line 195, in main
config=cfg.pretty_text,
File "h/miniconda3/envs/myenv/lib/python3.7/site-packages/mmcv/utils/config.py", line 508, in prettytext
text, = FormatCode(text, style_config=yapf_style, verify=True)
File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/yapf_api.py", line 186, in FormatCode
raise errors.YapfError(errors.FormatErrorMsg(e))
yapf.yapflib.errors.YapfError: :152:43: invalid syntax
I changed train.py like this:
backbone = {'pretrained':['torchvision://resnet101', 'torchvision://resnet50'], 'backbone':{'depth':[101,50]}}
data_train = {'img_scale' : [(512, 512),(1024,1024), (640, 640)]}
for b in range(len(backbone['pretrained'])):
cfg.model['pretrained'] = backbone['pretrained'][b]
cfg.model['backbone']['depth'] = backbone['backbone']['depth'][b]
print("model***")
# print(type(cfg.model))
# print(cfg.model)
# print("***************************************************************************************************")
model = build_detector(cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)
for d in range(len(data_train['img_scale'])):
cfg.data.train.pipeline[3].img_scale = data_train['img_scale'][d]
cfg.data.train.pipeline[3].img_scale = data_train['img_scale'][d]
print(cfg.data.train['pipeline'][3]['img_scale'], " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ " ,data_train['img_scale'][d])
datasets = [build_dataset(cfg.data.train)]
if len(cfg.workflow) == 2:
val_dataset = copy.deepcopy(cfg.data.val)
val_dataset.pipeline = cfg.data.train.pipeline
datasets.append(build_dataset(val_dataset))
if cfg.checkpoint_config is not None:
# save mmdet version, config file content and class names in
# checkpoints as meta data
cfg.checkpoint_config.meta = dict(
mmdet_version=__version__,
config=cfg.pretty_text,
CLASSES=datasets[0].CLASSES)
# add an attribute for visualization convenience
model.CLASSES = datasets[0].CLASSES
train_detector(
model,
datasets,
cfg,
distributed=distributed,
validate=(not args.no_validate),
timestamp=timestamp,
meta=meta)
Hello, I want to train model with different hyperparameters so I changed the hyperparameter of cfg.data.train like img_scale in the loop but I get the below error:
raceback (most recent call last): File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/yapf_api.py", line 183, in FormatCode tree = pytree_utils.ParseCodeToTree(unformatted_source) File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/pytree_utils.py", line 131, in ParseCodeToTree raise e File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/pytree_utils.py", line 129, in ParseCodeToTree ast.parse(code) File "/miniconda3/envs/myenv/lib/python3.7/ast.py", line 35, in parse return compile(source, filename, mode, PyCF_ONLY_AST) File "", line 152
config='dataset_type = 'DOTADataset'
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "tools/train.py", line 211, in
main()
File "tools/train.py", line 195, in main
config=cfg.pretty_text,
File "h/miniconda3/envs/myenv/lib/python3.7/site-packages/mmcv/utils/config.py", line 508, in prettytext
text, = FormatCode(text, style_config=yapf_style, verify=True)
File "/miniconda3/envs/myenv/lib/python3.7/site-packages/yapf/yapflib/yapf_api.py", line 186, in FormatCode
raise errors.YapfError(errors.FormatErrorMsg(e))
yapf.yapflib.errors.YapfError: :152:43: invalid syntax
I changed train.py like this: backbone = {'pretrained':['torchvision://resnet101', 'torchvision://resnet50'], 'backbone':{'depth':[101,50]}} data_train = {'img_scale' : [(512, 512),(1024,1024), (640, 640)]}
for b in range(len(backbone['pretrained'])): cfg.model['pretrained'] = backbone['pretrained'][b] cfg.model['backbone']['depth'] = backbone['backbone']['depth'][b]
print("model***")