正愁训练网络调参麻烦,搜到了 Ray-tune 这个工具。
为了充分利用电脑的 CPU、GPU 资源,需要写出类似以下的代码。详情看注释:
ray.shutdown() # 避免 ray.init() 出错
ray.init(num_cpus=12, num_gpus=1) # ray 默认不使用 GPU,所以需要传入参数
...
result = tune.run(
start_train,
scheduler=tune_scheduler,
config=configs,
resources_per_trial={"gpu": 0.25, "cpu": 3}, # 允许只分一部分 GPU 给每个 trial
num_samples=200,
)
现在,就有 4 个 trail 同时运行了。
关于 Ray-tune 的实例,PyTorch 有个官方示例:Hyperparameter tuning with Ray Tune — PyTorch Tutorials 2.0.1+cu117 documentation