【发布时间】:2021-06-12 03:30:36
【问题描述】:
我正在尝试使用 StablesBaselines3 的 A2C 在我的自定义环境中训练代理。我的问题是我的 GPU 利用率非常低(仅 10 % 左右),而我的 CPU 利用率已经达到上限。因此,训练非常非常缓慢。根据@araffin 解决的这个讨论主题,我尝试了以下事情 [https://github.com/hill-a/stable-baselines/issues/308]
- 将 Actor 和 Critic 架构扩展到三层神经网络 网络分别有 256、256 和 128 个神经元。图形处理器 在那之后利用率确实增加了,但只是微不足道的 (从 10 % 增加到 15 %)如本建议所述
- 将 A2C 方法的
device参数从默认的“auto”更改为“cuda”- 没有改善
在上述讨论中,对用户有用的方法并不完全清楚。 我的 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 配置为:
- Cuda 版本 - 9.0
- GPU - NVIDIA RTX 2080i
- GPU 内存 - 11GB(其中仅使用了大约 1600MB)
CPU 配置
- 每个核心的线程数 - 2
- 每个插槽的核心 - 8 个
- 英特尔 i9 内核 9900 K @ 3.6 Ghz
- CPU 内存 - 32GB 软件版本
- 火炬 - 1.6.0
- Tensorflow GPU - 2.4.1(虽然我知道 SB3 实现使用 Torch)
- 蟒蛇环境中的 Python 3.7
任何帮助将不胜感激!
【问题讨论】:
标签: pytorch gpu reinforcement-learning