当前位置: 首页 > news >正文

TorchRL 安装记录(亲测有效)

全部历史命令记录:

(torchrl_1) C:\Users\XCOS>doskey /history
conda env list
conda create -n torchrl_1 python=3.10 -y
conda activate torchrl_1
python -m pip install --upgrade pip setuptools wheel
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
python -c "import torch; print('torch', torch.__version__); print('cuda_available', torch.cuda.is_available())"
python -m pip install "torchrl[utils]" tqdm tensorboard hydra-submitit-launcher
python -m pip install "gym[atari]" "gym[accept-rom-license]" pygame
python -m pip install dm_control
python -m pip install "moviepy<2.0.0"
python -m pip install wandb
pip list
doskey /history

环境:Anaconda、Cuda 12.1、两张3090


一、创建并激活虚拟环境

conda create -n torchrl_1 python=3.10 -y
conda activate torchrl_1

二、升级 pip / setuptools / wheel (非常重要)

python -m pip install --upgrade pip setuptools wheel   # 旧 pip 会导致 extras / PEP508 / 本地编译时出错 ——摘自Github

三、安装 PyTorch 及 Cuda (建议用win+conda)

如果你有 NVIDIA GPU,想用CUDA 12.1 则:

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y

如果没有 GPU ,则

conda install pytorch torchvision torchaudio cpuonly -c pytorch -y

四、验证 PyTorch 是否安装成功

python -c "import torch; print('torch', torch.__version__); print('cuda_available', torch.cuda.is_available())"

如果 cuda_available 为 True,表示 PyTorch 能访问 GPU,否则是 CPU-only(或驱动安装有问题)


五、安装 TorchRL (推荐通过 pip 在已激活的 conda 环境里执行)

只安装 core + utils,此为基本安装!

python -m pip install "torchrl[utils]"  

若想安装 TorchRL 的更多可选包(完整功能/渲染/环境/日志),可以把 README 列出的可选依赖一并装上(下面是常见组合的示例):

常见额外工具(hydra, tqdm, tensorboard, submitit 等)

python -m pip install "torchrl[utils]" tqdm tensorboard hydra-submitit-launcher

如果要 Gym + Atari(经典游戏环境):

python -m pip install "gym[atari]" "gym[accept-rom-license]" pygame

如果要 DeepMind Control Suite:

python -m pip install dm_control

渲染(moviepy):

python -m pip install "moviepy<2.0.0"

可选:wandb(权重与偏差):

python -m pip install wandb

六、安装后的验证

python -c "import torch, torchrl; print('torch', torch.__version__); import importlib; print('torchrl import ok', importlib.import_module('torchrl'))"
python -c "import torch; print('cuda', torch.cuda.is_available(), torch.cuda.device_count())"

输出显示如下:

证明 TorchRL安装成功!


七、程序样例运行

修改pycharm解释器为虚拟环境 torchrl_1 下的 python.exe,直接运行参考网址[3]中的python程序即可:

import torch
from tensordict.nn import TensorDictModule
from tensordict.nn.distributions import NormalParamExtractor
from torch import nnfrom torchrl.collectors import SyncDataCollector
from torchrl.data.replay_buffers import TensorDictReplayBuffer, \LazyTensorStorage, SamplerWithoutReplacement
from torchrl.envs.libs.gym import GymEnv
from torchrl.modules import ProbabilisticActor, ValueOperator, TanhNormal
from torchrl.objectives import ClipPPOLoss
from torchrl.objectives.value import GAEenv = GymEnv("Pendulum-v1")
model = TensorDictModule(nn.Sequential(nn.Linear(3, 128), nn.Tanh(),nn.Linear(128, 128), nn.Tanh(),nn.Linear(128, 128), nn.Tanh(),nn.Linear(128, 2),NormalParamExtractor()),in_keys=["observation"],out_keys=["loc", "scale"]
)
critic = ValueOperator(nn.Sequential(nn.Linear(3, 128), nn.Tanh(),nn.Linear(128, 128), nn.Tanh(),nn.Linear(128, 128), nn.Tanh(),nn.Linear(128, 1),),in_keys=["observation"],
)
actor = ProbabilisticActor(model,in_keys=["loc", "scale"],distribution_class=TanhNormal,distribution_kwargs={"min": -1.0, "max": 1.0},return_log_prob=True)
buffer = TensorDictReplayBuffer(LazyTensorStorage(1000),SamplerWithoutReplacement())
collector = SyncDataCollector(env,actor,frames_per_batch=1000,total_frames=1_000_000)
loss_fn = ClipPPOLoss(actor, critic, gamma=0.99)
optim = torch.optim.Adam(loss_fn.parameters(), lr=2e-4)
adv_fn = GAE(value_network=critic, gamma=0.99, lmbda=0.95, average_gae=True)
for data in collector:  # collect datafor epoch in range(10):adv_fn(data)  # compute advantagebuffer.extend(data.view(-1))for i in range(20):  # consume datasample = buffer.sample(50)  # mini-batchloss_vals = loss_fn(sample)loss_val = sum(value for key, value in loss_vals.items() ifkey.startswith("loss"))loss_val.backward()optim.step()optim.zero_grad()print(f"avg reward: {data['next', 'reward'].mean().item(): 4.4f}")

程序样例运行成功:

(其中,Gym尚有问题,若需要,请自行解决)


参考网址:

[1] https://github.com/pytorch/rl
[2] https://chatgpt.com/c/68f8b81e-8518-8320-bebe-f0d98c22f18a
[3] https://blog.csdn.net/HGGshiwo/article/details/133698735

http://www.dtcms.com/a/515544.html

相关文章:

  • 网站建设教程资源wordpress有插件怎么用
  • 网站建设的项目描述银川微信网站
  • Java网络编程套接字
  • npm 常用标签与使用技巧新手教程
  • 继承和组合
  • Maven高级知识
  • Spring Boot 3 + Thymeleaf 基础教程
  • 自动化部署脚本
  • 上海专业网站建设方案wordpress 送女友
  • 人与狗做的电影网站网页搭建服务
  • 前端 数据的转换
  • React useCallback介绍(用来缓存函数的引用,避免每次渲染都重新创建函数)主要用于性能优化
  • VUE工程化开发模式
  • 海口澄迈县建设局网站杭州萧山网络
  • 前端低代码开发工具的崛起与实践经验分享,从效率到可控性的平衡
  • 二、redis集群部署(3主3从)
  • Vue 生命周期详解
  • vue3调用ant-design-vue组件库的a-table组件
  • 手机网站开发软件南昌网站外包
  • 以图搜图随州网站seo诊断
  • java设计模式六、装饰器模式
  • 微信小程序隐藏滚动条多种方法教程
  • AWS DMS实现MySQL到Redshift的CDC增量数据复制方案
  • 王者重名生成查询抖音快手微信小程序看广告流量主开源
  • 旅游网站建设1000字软文范例800字
  • 网站搜索引擎友好性最近三天发生的重要新闻
  • Flink的checkpoint interval与mini-batch什么区别?
  • CADSoftTools发布两款重要更新:CAD VCL Multiplatform 16.2 与 CAD .NET 16全新发布
  • 【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
  • 触摸未来2025-10-22:语序之困