Mmaction2随机种子固定

最近在下载mmaction2代码跑自己数据集上的训练的时候,对比日志发现两次训练的日志结果不一致,后来在传参文件里面找到下面的代码:

    parser.add_argument('--seed', type=int, default=None, help='random seed')

本来以为训练阶段会有一个默认种子的,结果发现是自己想当然了,里面加上随机种子。然后发现mmaction2这个代码要保证结果一致性还需要加入第二个参数“--deterministic”,但是我在运行命令行加入这个参数会报错,查了一下好像是CUDA版本太高了的问题。

最后的解决

首先在train和test代码文件里面加上下面的代码:

os.environ['CUBLAS_WORKSPACE_CONFIG'] = ':4096:8'

接着命令行运行的时候指定随机种子和“--deterministic”,类似于:

 CUDA_VISIBLE_DEVICES=3 python tools/train.py [config.py] --work-dir [target_log_dir] --seed 458937044 --deterministic

后面发现还可以找到确定随机种子的函数,把那部分函数抄到train和test代码文件里面,然后将设定随即种子放到merge config前面就行,也能固定住随机种子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值