File “./tools/train.py“, line 124 log_file = osp.join(cfg.work_dir, f‘{timestamp}.log‘)

问题
在使用mmdetection做训练时出现这样的问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  File "./tools/train.py", line 124
    log_file = osp.join(cfg.work_dir, f'{timestamp}.log')
                                                       ^
SyntaxError: invalid syntax
  File "./tools/train.py", line 124
    log_file = osp.join(cfg.work_dir, f'{timestamp}.log')
                                                       ^
SyntaxError: invalid syntax
  File "./tools/train.py", line 124
    log_file = osp.join(cfg.work_dir, f'{timestamp}.log')
                                                       ^
SyntaxError: invalid syntax
  File "./tools/train.py", line 124
    log_file = osp.join(cfg.work_dir, f'{timestamp}.log')

解决方法:用python3跑啊,sh*t!
原因:python3.6之后允许format简写为f了,以下两种写法等价。

1
2
3
4
5
#python3.6之后的写法
logger.info(f'Config:\n{cfg.pretty_text}')

#python3.6之前的写法
logger.info('Config:\n{}'.format(cfg.pretty_text))

忘了开自己的虚拟环境,直接在base下运行的,base下的环境是2.7,那可不得出错吗?!怎么回事啊你,能不能行了?!还查不到这问题,那可不得查不到吗,这么傻的问题谁会犯啊!