首页 > 解决方案 > 在 Actor Critic (A2C) Stable Baselines3 实施中未充分利用 GPU

问题描述

我正在尝试使用 StablesBaselines3 的 A2C 在我的自定义环境中训练代理。我的问题是我的 GPU 利用率非常低(仅 10 % 左右),而我的 CPU 利用率已经达到上限。因此,训练非常非常缓慢。根据@araffin [https://github.com/hill-a/stable-baselines/issues/308] 解决的这个讨论线程,我尝试了以下事情

在上述讨论中,尚不完全清楚什么对用户有用。我的 A2C 初始化如下:

import gym
from stable_baselines3 import A2C
policy_kwargs = dict(activation_fn=th.nn.ReLU,
                     net_arch=[dict(pi=[256, 256, 128], vf=[256, 256, 128])])
model = A2C("MlpPolicy", env, verbose=1,  learning_rate=linear_schedule(0.001),\
 n_steps=50, gamma=0.8, gae_lambda=1.0, ent_coef=0.2, vf_coef=0.2, \
tensorboard_log=logdir,  policy_kwargs=policy_kwargs, seed=50, device='cuda' )
model.learn(total_timesteps=50000)

GPU配置是:

CPU 配置

任何帮助将不胜感激!

标签: pytorchgpureinforcement-learning

解决方案


稳定的基线正在使用您的 gpu ...如果您在第二个选项卡上查看任务管理器,请单击您的 gpu 而不是 3D 选择 cuda,您将看到 cuda 的使用

我的环境遇到了一些问题,因为我的环境使用了 pandas .. 而 pandas 使用 cpu .. 在 windows 上使用 cudf 是不可能的,所以我的 cpu 使用了 100%

我在我的自定义环境中使用了 pandas 和 numpy .. 为了改进它,我应该使用 cunumery 和 cudf,但要做到这一点,我需要 linux。

所以现在,我的 cpu 使用 100% gpu 使用 cuda 70% 和 gpu 内存几乎 1.7 gb


推荐阅读