qcoding

[강화학습-13] 도구 · 라이브러리 모음 – Gym · Stable Baselines3 · TF vs PyTorch 본문

머신러닝 딥러닝

[강화학습-13] 도구 · 라이브러리 모음 – Gym · Stable Baselines3 · TF vs PyTorch

Qcoding 2025. 5. 28. 17:43
반응형
13. 도구 · 라이브러리 모음 – Gym · Stable Baselines3 · TF vs PyTorch

13. 주요 도구 & 라이브러리

실험을 “5분 만에” 돌릴 수 있는 세팅부터, 대규모 클러스터 학습까지— 가장 많이 사용하는 Gym / Stable Baselines3, 그리고 TensorFlow vs PyTorch 선택 가이드를 한눈에 정리했습니다.


13-1. OpenAI Gym & Stable Baselines3 빠른 시작

OpenAI Gym Logo
그림 1-A · OpenAI Gym
Stable Baselines3 Logo
그림 1-B · Stable Baselines 3
# 1️⃣ 설치
pip install "gymnasium[classic_control]" stable-baselines3[extra]

# 2️⃣ 환경 만들기
import gymnasium as gym
env = gym.make("CartPole-v1")

# 3️⃣ 학습
from stable_baselines3 import PPO
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100_000)

# 4️⃣ 배포/플레이
obs, _ = env.reset()
done   = False
while not done:
    action, _ = model.predict(obs, deterministic=True)
    obs, reward, term, trunc, _ = env.step(action)
    done = term or trunc
env.close()
  • MlpPolicy, CnnPolicy, MultiInputPolicy 등 사전 정의.
  • HP 검색 : model = PPO(..., tensorboard_log="./runs") → TensorBoard 시각화.
  • Gymnasium 은 Gym 계보를 잇는 공식 커뮤니티 포크(API 동일).

13-2. TensorFlow vs PyTorch – Reinforcement Learning 관점

항목TF TensorFlow 2.xPyTorch PyTorch 2.x
동적 ⇔ 정적 Eager 기본 + @tf.function 그래프 전환 Define-by-Run 기본, torch.compile() (JIT) 가속
주요 RL 프레임워크 TF-Agents, Acme(TF), Dopamine Stable Baselines3, Lightning-RL, RLLib, CleanRL
TPU 지원 공식 지원 (Cloud TPU) XLA Backend ON (2.0+) → TPU v2/v3 지원
모델 서빙 TensorFlow Serving / TFX TorchServe / Triton / ONNX Runtime
IDE 디버깅 tf.debugging, TensorBoard Debugger torch.autograd.set_detect_anomaly, torchviz
커뮤니티 트렌드 (RL) 로봇 ROS, 모바일 전력 SL 논문·오픈소스 8 할 이상 PyTorch

어떤 걸 써야 할까?빠른 실험·최신 코드를 따라가려면 PyTorch ▶ SB3 / CleanRL • TPU·모바일·TF-Serving 파이프라인 이미 구축 → TF 2.x + TF-Agents


13-3. 개발 · 디버깅 팁 모음

카테고리도구Tip
로그 & 비주얼 TensorBoard · Weights&Biases · MLflow model.learn(..., callback=WandbCallback())
네트워크 구조 확인 torchsummary, tf.keras.Model.summary() 파라미터 수·메모리 추산 후 배치 크기 조정
NaN / Exploding Grad PyTorch torch.nan_to_num()
TF tf.debugging.check_numerics
🧯 Gradient Clipping or RMSNorm
재현성 seed_everything(), deterministic cuDNN 심지어 Gym env seed 도 고정해야 동일 결과
프로파일링 PyTorch Profiler · TensorBoard Profiler 마우스로 구간 드래그 → CPU/GPU HTrace 확인
분산 실행 Ray RLlib, Torch DDP, Horovod 1줄 config로 워커 수 scale-out .rollouts(num_rollout_workers=16)
PyTorch Profiler in TensorBoard
그림 2. TensorBoard Profiler로 GPU Kernel Timeline 분석

13-4. 요약 & 다음 예고

  • 💡 Gym + Stable Baselines3 (+ PyTorch) 조합이면 대다수 RL 논문·튜토리얼을 그대로 재현 가능.
  • 💡 TensorFlow 생태계를 이미 사용 중이면 TF-Agents·Dopamine 도 고려.
  • 💡 디버깅 단계에서 시각화·프로파일링·재현성 세 축을 꼭 챙기자.

다음 글 : 모델 배포 & 운영— ONNX Export, 실시간 추론, A/B 테스트, 모니터링까지 “RL 서비스”를 위한 MLOps 관점을 살펴봅니다.


참고 링크

반응형
Comments