[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-kaixindelele--DRLib":3,"similar-kaixindelele--DRLib":96},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":16,"owner_avatar_url":17,"owner_bio":16,"owner_company":18,"owner_location":16,"owner_email":19,"owner_twitter":20,"owner_website":21,"owner_url":22,"languages":23,"stars":28,"forks":29,"last_commit_at":30,"license":31,"difficulty_score":32,"env_os":33,"env_gpu":34,"env_ram":35,"env_deps":36,"category_tags":48,"github_topics":16,"view_count":50,"oss_zip_url":16,"oss_zip_packed_at":16,"status":51,"created_at":52,"updated_at":53,"faqs":54,"releases":95},5398,"kaixindelele\u002FDRLib","DRLib","DRLib：a Concise Deep Reinforcement Learning Library, Integrating HER, PER and D2SR for Almost Off-Policy RL Algorithms.","DRLib 是一个简洁高效的深度强化学习开源库，旨在降低离线策略（Off-Policy）算法的研究与应用门槛。它基于 OpenAI Spinning Up 重构，完美支持 TensorFlow 和 PyTorch 双框架，并原生集成了 Hindsight Experience Replay (HER)、Prioritized Experience Replay (PER) 以及最新的 D2SR 奖励函数设计方法。\n\n针对现有工具在机器人控制等稀疏奖励任务中配置复杂、调试困难的问题，DRLib 进行了针对性优化。它移除了繁琐的多进程实验网格封装，提供了更友好的类结构接口，特别适配 PyCharm 等 IDE 的断点调试功能，让开发者能轻松排查代码逻辑。此外，DRLib 还实现了便捷的并行自动调参机制，并支持 GPU 加速，显著提升了训练效率。\n\n这款工具非常适合强化学习领域的研究人员、高校学生以及从事机器人开发的工程师使用。无论你是希望快速复现 DDPG、TD3、SAC 等主流算法，还是需要在真实机械臂任务中验证 HER 与 PER 的效果，DRLib 都能提供从环境配置到模型训练的一站","DRLib 是一个简洁高效的深度强化学习开源库，旨在降低离线策略（Off-Policy）算法的研究与应用门槛。它基于 OpenAI Spinning Up 重构，完美支持 TensorFlow 和 PyTorch 双框架，并原生集成了 Hindsight Experience Replay (HER)、Prioritized Experience Replay (PER) 以及最新的 D2SR 奖励函数设计方法。\n\n针对现有工具在机器人控制等稀疏奖励任务中配置复杂、调试困难的问题，DRLib 进行了针对性优化。它移除了繁琐的多进程实验网格封装，提供了更友好的类结构接口，特别适配 PyCharm 等 IDE 的断点调试功能，让开发者能轻松排查代码逻辑。此外，DRLib 还实现了便捷的并行自动调参机制，并支持 GPU 加速，显著提升了训练效率。\n\n这款工具非常适合强化学习领域的研究人员、高校学生以及从事机器人开发的工程师使用。无论你是希望快速复现 DDPG、TD3、SAC 等主流算法，还是需要在真实机械臂任务中验证 HER 与 PER 的效果，DRLib 都能提供从环境配置到模型训练的一站式支持。其详尽的安装教程和清晰的代码结构，能帮助新手在两小时内完成从零部署，是探索深度强化学习理想的实践平台。","# DRLib：A concise deep reinforcement learning library which integrats amost all of off policy RL algos with HER and PER.\nA concise deep reinforcement learning library which integrats amost all of off policy RL algos with HER and PER. The library is written based on the code in https:\u002F\u002Fgithub.com\u002Fopenai\u002Fspinningup, and can be achieved with tensorflow or pytorch.\nCompared with spinning up, the multi-process and experimental grid wrapper have been deleted for easy application. Besides, the code in our library is convenient to debug with pycharm~\n\n**欢迎大家关注我的最新工作D2SR，基于切换的密集转稀疏的高效奖励函数设计方法：**\n\n核心代码已经开源在本仓库：[D2SSR](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Ftree\u002Fmain\u002FD2SSR)\n\n对应的中文版论文也在这个仓库中：[D2SR: Transferring Dense Reward Function to Sparse by Network Resetting](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fblob\u002Fmain\u002FD2SR_RCAR_%E4%B8%AD%E6%96%87%E7%89%88.pdf)\n\n\n**欢迎大家关注我的最新工作RHER，简洁高效的HER变体：**\n[https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FRHER](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FRHER)\n\n**最新的、全面的实验结果：**\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_7783b12d2e41.jpg\" \u002F>\n\u003C\u002Fp>\n\n4种tf，3种torch的HER算法在三个操作任务的测试结果。\n\n### 画图脚本示例：\n\n\n```\npython spinup_utils\u002Fplot.py HER_DRLib_mpi1\u002F2 --select Push\n\n#如果是Windows建议用绝对路径，否则找不到文件\n```\n\n### 保存一个训练好的模型：net\u002Freplay_buffer\u002Fnorm!\n\n```\npython train_torch_mpi_norm_save.py\n```\n\n### 重载测试一个训练好的模型：net\u002Freplay_buffer\u002Fnorm!\n\n```\npython train_torch_mpi_norm_load.py\n```\n\n\n## 项目特点：\n\n1. tf1和pytorch两个版本的算法，前者快，后者新，任君选择；\n\n2. 在spinup的基础上，封装了DDPG, TD3, SAC等主流强化算法，相比原来的函数形式的封装，调用更方便，且**加了pytorch的GPU调用**；\n\n3. **添加了HER和PER功能**，非常适合做机器人相关任务的同学们；\n\n4. 实现了**最简单的并行自动调参**（ExperimentGrid）和多进程（MPI_fork-实现了，没有完全实现）部分，适合新手在pycharm中debug，原版的直接调试经常会报错~\n\n教程链接：[【Spinning Up】四、python同时启动多个不同参数脚本](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114803650)\n\n多进程教程：没写~\n```\n我终于把tf版本-基于mpi的多进程调好了~\n\ntorch版本的没有测试完毕，有报错！\n\n如果大家的CPU核心足够多的情况下，试试mpi多进程，性能会提升比较大的。\n\n目前测试的结果是，tf-DDPG的性能最佳，TD3的结果竟然会比ddpg的差，简直了~\n\n```\n\n5. 最后，全网最详细的环境配置教程！**亲测两个小时内，从零配置完全套环境！**\n\n6. **求三连，不行的话，求个star！**\n\n## 1. Installation\n1. Clone the repo and cd into it:\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib.git\n    cd DRLib\n    ```\n2. Create anaconda DRLib_env env:\n    ```bash\n    conda create -n DRLib_env python=3.6.9\n    source activate DRLib_env\n    ```\n3. Install pip_requirement.txt:\n    ```bash\n    pip install -r pip_requirement.txt\n    ```\n    \n    If installation of mpi4py fails, try the following command(Only this one can be installed successfully!):\n    ```bash\n    conda install mpi4py\n    ```\n    \n    或者直接看下面的链接：\n    [ubuntu-windows-install-mpi4py-亲测好使！](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109125425)\n    \n    \n    ```bash\n    conda install seaborn==0.8.1 scipy -y\n    ```\n    \n    \n4. Install tensorflow-gpu=1.14.0\n    ```bash \n    conda install tensorflow-gpu==1.14.0 # if you have a CUDA-compatible gpu and proper drivers\n    ```\n    \n5. Install torch torchvision\n    ```bash \n    # CUDA 9.2\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=9.2 -c pytorch\n\n    # CUDA 10.1\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch\n\n    # CUDA 10.2\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch\n\n    # CPU Only\n    conda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch\n    \n    # or pip install    \n    pip --default-timeout=100 install torch -i  http:\u002F\u002Fpypi.douban.com\u002Fsimple  --trusted-host pypi.douban.com\n    [pip install torch 在线安装!非离线!](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F111480313)\n    ```\n    \n6. Install mujoco and mujoco-py\n    ```bash \n    refer to: https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109012048\n    ```\n    \n7. Install gym[all]\n    ```python\n    refer to https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F110423154\n    ```\n\n\n## 2. Training models\n\n- Example 1. SAC-tf1-HER-PER with FetchPush-v1:\n1. modify params in arguments.py, choose env, RL-algorithm, use PER and HER or not, gpu-id, and so on.\n\n2. run with train_tf.py or train_torch.py\n    ```bash \n    python train_tf.py\n    ```\n\n3. exp results to local:https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114045615\n\n4. plot results:https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114044217\n\n\n>超强版强化学习画图脚本！\n\n>相比于原始的plot.py文件，增加了如下的功能\n>\n>1.可以直接在pycharm或者vscode执行，也可以用命令行传参；\n>\n>2.按exp_name排序，而不是按时间排序；\n>\n>3.固定好每个exp_name的颜色；\n>\n>4.可以调节曲线的线宽，便于观察；\n>\n>5.保存图片到本地，便于远程ssh画图~\n>\n>6.自动显示全屏\n>\n>7.图片自适应\n>\n>8.针对颜色不敏感的人群,可以在每条legend上注明性能值,和性能序号\n>\n>9.对图例legend根据性能从高到低排序，便于分析比较\n>\n>10.提供clip_xaxis值，对训练程度进行统一截断，图看起来更整洁。\n>seaborn版本0.8.1\n\n    \n## 3. File tree and introduction:\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_f124431182a8.png\" \u002F>\n\u003C\u002Fp>\n\n\n\n```bash\n.\n├── algos\n│   ├── pytorch\n│   │   ├── ddpg_sp\n│   │   │   ├── core.py-------------It's copied directly from spinup, and modified some details.\n│   │   │   ├── ddpg_per_her.py-----inherits from offPolicy.baseOffPolicy, where one can choose whether or not HER and PER\n│   │   │   ├── ddpg.py-------------It's copied directly from spinup\n│   │   │   ├── __init__.py\n│   │   ├── __init__.py\n│   │   ├── offPolicy\n│   │   │   ├── baseOffPolicy.py----baseOffPolicy, DDPG\u002FTD3\u002FSAC and so on.\n│   │   │   ├── norm.py-------------state normalizer, update mean\u002Fstd with training process.\n│   │   ├── sac_auto\n│   │   ├── sac_sp\n│   │   │   ├── core.py-------------likely as before.\n│   │   │   ├── __init__.py\n│   │   │   ├── sac_per_her.py\n│   │   │   └── sac.py\n│   │   └── td3_sp\n│   │       ├── core.py\n│   │       ├── __init__.py\n│   │       ├── td3_gpu_class.py----td3_class modified from spinup\n│   │       └── td3_per_her.py\n│   └── tf1\n│       ├── ddpg_sp\n│       │   ├── core.py\n│       │   ├── DDPG_class.py------------It's copied directly from spinup, and wrap algorithm from function to class.\n│       │   ├── DDPG_per_class.py--------Add PER.\n│       │   ├── DDPG_per_her_class.py----DDPG with HER and PER without inheriting from offPolicy.\n│       │   ├── DDPG_per_her.py----------Add HER and PER.\n│       │   ├── DDPG_sp.py---------------It's copied directly from spinup, and modified some details.\n│       │   ├── __init__.py\n│       ├── __init__.py\n│       ├── offPolicy\n│       │   ├── baseOffPolicy.py\n│       │   ├── core.py\n│       │   ├── norm.py\n│       ├── sac_auto--------------------SAC with auto adjust alpha parameter version.\n│       │   ├── core.py\n│       │   ├── __init__.py\n│       │   ├── sac_auto_class.py\n│       │   ├── sac_auto_per_class.py\n│       │   └── sac_auto_per_her.py\n│       ├── sac_sp--------------------SAC with alpha=0.2 version.\n│       │   ├── core.py\n│       │   ├── __init__.py\n│       │   ├── SAC_class.py\n│       │   ├── SAC_per_class.py\n│       │   ├── SAC_per_her.py\n│       │   ├── SAC_sp.py\n│       └── td3_sp\n│           ├── core.py\n│           ├── __init__.py\n│           ├── TD3_class.py\n│           ├── TD3_per_class.py\n│           ├── TD3_per_her_class.py\n│           ├── TD3_per_her.py\n│           ├── TD3_sp.py\n├── arguments.py-----------------------hyperparams scripts\n├── drlib_tree.txt\n├── HER_DRLib_exps---------------------demo exp logs\n│   ├── 2021-02-21_HER_TD3_FetchPush-v1\n│   │   ├── 2021-02-21_18-26-08-HER_TD3_FetchPush-v1_s123\n│   │   │   ├── checkpoint\n│   │   │   ├── config.json\n│   │   │   ├── params.data-00000-of-00001\n│   │   │   ├── params.index\n│   │   │   ├── progress.txt\n│   │   │   └── Script_backup.py\n├── memory\n│   ├── __init__.py\n│   ├── per_memory.py--------------mofan version\n│   ├── simple_memory.py-----------mofan version\n│   ├── sp_memory.py---------------spinningup tf1 version, simple uniform buffer memory class.\n│   ├── sp_memory_torch.py---------spinningup torch-gpu version, simple uniform buffer memory class.\n│   ├── sp_per_memory.py-----------spinningup tf1 version, PER buffer memory class.\n│   └── sp_per_memory_torch.py\n├── pip_requirement.txt------------pip install requirement, exclude mujoco-py,gym,tf,torch.\n├── spinup_utils-------------------some utils from spinningup, about ploting results, logging, and so on.\n│   ├── delete_no_checkpoint.py----delete the folder where the experiment did not complete.\n│   ├── __init__.py\n│   ├── logx.py\n│   ├── mpi_tf.py\n│   ├── mpi_tools.py\n│   ├── plot.py\n│   ├── print_logger.py------------save the information printed by the terminal to the local log file。\n│   ├── run_utils.py---------------now I haven't used it. I have to learn how to multi-process.\n│   ├── serialization_utils.py\n│   └── user_config.py\n├── train_tf1.py--------------main.py for tf1\n└── train_torch.py------------main.py for torch\n\n\n```\n\n\n## 4. HER introduction:\n\nthe achievement of HER is based on the following code :\n\n1. It can be converged, but this code is too difficult. https:\u002F\u002Fgithub.com\u002Fopenai\u002Fbaselines\n\n2. It can also converged, but only for DDPG-torch-cpu. https:\u002F\u002Fgithub.com\u002Fsush1996\u002FDDPG_Fetch\n\n3. It can not be converged, but this code is simpler. https:\u002F\u002Fgithub.com\u002FStable-Baselines-Team\u002Fstable-baselines\n\n- paper: https:\u002F\u002Farxiv.org\u002Fpdf\u002F1709.10089.pdf\n\n\n### 4.1. My understanding and video:\n\n>种瓜得豆来解释her:\n第一步在春天（state），种瓜（origin-goal）得豆，通过HER，把目标换成种豆，按照之前的操作，可以学会在春天种豆得豆；\n第二步种米得瓜，学会种瓜得瓜；\n即只要是智能体中间经历过的状态，都可以当做它的目标，进行学会。\n即如果智能体能遍历所有的状态空间，那么它就可以学会达到整个状态空间。\n\n论文分析视频：https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1BA411x7Wm\n\n代码分析文档：https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fblob\u002Fmain\u002Falgos\u002Fpytorch\u002FoffPolicy\u002FHER_introduction.md\n\n\n\n### 4.2. Key tricks for HER:\n\n1. state-normalize: success rate from 0 to 1 for FetchPush-v1 task.\n2. Q-clip: success rate from 0.5 to 0.7 for FetchPickAndPlace-v1 task.\n3. action_l2: little effect for Push task.\n\n### 4.3. Performance about HER-DDPG with FetchPush-v1:\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_bf99150fad00.png\" \u002F>\n\u003C\u002Fp>\n\n## 5. PER introduction:\n\nrefer to:[off-policy全系列（DDPG-TD3-SAC-SAC-auto）+优先经验回放PER-代码-实验结果分析](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F111600080)\n\n## 6. Summary：\n\n这个库我封装了好久，整个代码库简洁、方便、功能比较齐全，在环境配置这块几乎是手把手教程，希望能给大家节省一些时间~\n\n从零开始配置，不到两小时，从下载代码库，到配置环境，到在自己的环境中跑通，全流程非常流畅。\n\n### 6.1. 下一步添加的功能：\n\n1. PPO的封装；---PPO不封装了！机械臂操作不用PPO~\n\n2. DQN的封装；---这个好像用的人也不多，放弃了~\n\n3. 多进程的封装；\n\n4. ExperimentGrid的封装；\n\n\n## 7. Contact：\n\n深度强化学习-DRL：799378128\n\n欢迎关注知乎帐号：[未入门的炼丹学徒](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fheda-he-28)\n\nCSDN帐号：[https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq)\n\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_da637fac7c0f.png)](https:\u002F\u002Fstar-history.com\u002F#kaixindelele\u002FDRLib&Timeline)\n\n## 欢迎引用！\n\n@inproceedings{luo2023d2sr,\n  title={D2SR: Transferring dense reward function to sparse by network resetting},\n  author={Luo, Yongle and Wang, Yuxin and Dong, Kun and Liu, Yu and Sun, Zhiyong and Zhang, Qiang and Song, Bo},\n  booktitle={2023 IEEE International Conference on Real-time Computing and Robotics (RCAR)},\n  pages={906--911},\n  year={2023},\n  organization={IEEE}\n}","# DRLib：一个简洁的深度强化学习库，集成了几乎所有基于离策略的强化学习算法，并支持HER和PER。\n一个简洁的深度强化学习库，集成了几乎所有基于离策略的强化学习算法，并支持HER和PER。该库基于https:\u002F\u002Fgithub.com\u002Fopenai\u002Fspinningup中的代码编写，既可以用TensorFlow实现，也可以用PyTorch实现。\n与Spinning Up相比，为了便于使用，删除了多进程和实验网格封装部分。此外，我们库中的代码在PyCharm中调试起来非常方便~\n\n**欢迎大家关注我的最新工作D2SR，基于切换的密集转稀疏的高效奖励函数设计方法：**\n\n核心代码已经开源在本仓库：[D2SSR](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Ftree\u002Fmain\u002FD2SSR)\n\n对应的中文版论文也在这个仓库中：[D2SR: Transferring Dense Reward Function to Sparse by Network Resetting](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fblob\u002Fmain\u002FD2SR_RCAR_%E4%B8%AD%E6%96%87%E7%89%88.pdf)\n\n\n**欢迎大家关注我的最新工作RHER，简洁高效的HER变体：**\n[https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FRHER](https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FRHER)\n\n**最新的、全面的实验结果：**\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_7783b12d2e41.jpg\" \u002F>\n\u003C\u002Fp>\n\n4种tf，3种torch的HER算法在三个操作任务的测试结果。\n\n### 画图脚本示例：\n\n\n```\npython spinup_utils\u002Fplot.py HER_DRLib_mpi1\u002F2 --select Push\n\n#如果是Windows建议用绝对路径，否则找不到文件\n```\n\n### 保存一个训练好的模型：net\u002Freplay_buffer\u002Fnorm!\n\n```\npython train_torch_mpi_norm_save.py\n```\n\n### 重载测试一个训练好的模型：net\u002Freplay_buffer\u002Fnorm!\n\n```\npython train_torch_mpi_norm_load.py\n```\n\n\n## 项目特点：\n\n1. tf1和pytorch两个版本的算法，前者快，后者新，任君选择；\n\n2. 在spinup的基础上，封装了DDPG, TD3, SAC等主流强化算法，相比原来的函数形式的封装，调用更方便，且**加了pytorch的GPU调用**；\n\n3. **添加了HER和PER功能**，非常适合做机器人相关任务的同学们；\n\n4. 实现了**最简单的并行自动调参**（ExperimentGrid）和多进程（MPI_fork-实现了，没有完全实现）部分，适合新手在pycharm中debug，原版的直接调试经常会报错~\n\n教程链接：[【Spinning Up】四、python同时启动多个不同参数脚本](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114803650)\n\n多进程教程：没写~\n```\n我终于把tf版本-基于mpi的多进程调好了~\n\ntorch版本的没有测试完毕，有报错！\n\n如果大家的CPU核心足够多的情况下，试试mpi多进程，性能会提升比较大的。\n\n目前测试的结果是，tf-DDPG的性能最佳，TD3的结果竟然会比ddpg的差，简直了~\n\n```\n\n5. 最后，全网最详细的环境配置教程！**亲测两个小时内，从零配置完全套环境！**\n\n6. **求三连，不行的话，求个star！**\n\n## 1. Installation\n1. 克隆仓库并进入目录：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib.git\n    cd DRLib\n    ```\n2. 创建anaconda DRLib_env环境：\n    ```bash\n    conda create -n DRLib_env python=3.6.9\n    source activate DRLib_env\n    ```\n3. 安装pip_requirement.txt中的依赖：\n    ```bash\n    pip install -r pip_requirement.txt\n    ```\n    \n    如果安装mpi4py失败，可以尝试以下命令（只有这一种方式能成功安装）：\n    ```bash\n    conda install mpi4py\n    ```\n    \n    或者直接参考下面的链接：\n    [ubuntu-windows-install-mpi4py-亲测好使！](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109125425)\n    \n    \n    ```bash\n    conda install seaborn==0.8.1 scipy -y\n    ```\n    \n    \n4. 安装tensorflow-gpu=1.14.0\n    ```bash \n    conda install tensorflow-gpu==1.14.0 # 如果你有一块兼容CUDA的显卡和正确的驱动程序\n    ```\n    \n5. 安装PyTorch和 torchvision：\n    ```bash \n    # CUDA 9.2\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=9.2 -c pytorch\n\n    # CUDA 10.1\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch\n\n    # CUDA 10.2\n    conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch\n\n    # 仅CPU\n    conda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch\n    \n    # 或者使用pip安装\n    pip --default-timeout=100 install torch -i  http:\u002F\u002Fpypi.douban.com\u002Fsimple  --trusted-host pypi.douban.com\n    [pip install torch 在线安装!非离线!](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F111480313)\n    ```\n    \n6. 安装mujoco和 mujoco-py：\n    ```bash \n    参考：https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109012048\n    ```\n    \n7. 安装gym[all]：\n    ```python\n    参考：https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F110423154\n    ```\n\n\n## 2. Training models\n\n- 示例1. SAC-tf1-HER-PER with FetchPush-v1:\n1. 修改arguments.py中的参数，选择环境、强化学习算法，是否使用PER和HER、GPU编号等。\n\n2. 使用train_tf.py或train_torch.py运行：\n    ```bash \n    python train_tf.py\n    ```\n\n3. 实验结果发布到本地：https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114045615\n\n4. 绘制结果图表：https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F114044217\n\n\n>超强版强化学习画图脚本！\n\n>相比于原始的plot.py文件，增加了如下的功能\n>\n>1.可以直接在pycharm或者vscode执行，也可以用命令行传参；\n>\n>2.按exp_name排序，而不是按时间排序；\n>\n>3.固定好每个exp_name的颜色；\n>\n>4.可以调节曲线的线宽，便于观察；\n>\n>5.保存图片到本地，便于远程ssh画图~\n>\n>6.自动显示全屏\n>\n>7.图片自适应\n>\n>8.针对颜色不敏感的人群,可以在每条legend上注明性能值,和性能序号\n>\n>9.对图例legend根据性能从高到低排序，便于分析比较\n>\n>10.提供clip_xaxis值，对训练程度进行统一截断，图看起来更整洁。\n>seaborn版本0.8.1\n\n## 3. 文件树及介绍：\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_f124431182a8.png\" \u002F>\n\u003C\u002Fp>\n\n\n\n```bash\n.\n├── algos\n│   ├── pytorch\n│   │   ├── ddpg_sp\n│   │   │   ├── core.py-------------直接从spinup复制而来，并对部分细节进行了修改。\n│   │   │   ├── ddpg_per_her.py-----继承自offPolicy.baseOffPolicy，用户可选择是否使用HER和PER。\n│   │   │   ├── ddpg.py-------------直接从spinup复制而来。\n│   │   │   ├── __init__.py\n│   │   ├── __init__.py\n│   │   ├── offPolicy\n│   │   │   ├── baseOffPolicy.py----基类，包含DDPG\u002FTD3\u002FSAC等算法。\n│   │   │   ├── norm.py-------------状态归一化器，在训练过程中不断更新均值和标准差。\n│   │   ├── sac_auto\n│   │   ├── sac_sp\n│   │   │   ├── core.py-------------与之前类似。\n│   │   │   ├── __init__.py\n│   │   │   ├── sac_per_her.py\n│   │   │   └── sac.py\n│   │   └── td3_sp\n│   │       ├── core.py\n│   │       ├── __init__.py\n│   │       ├── td3_gpu_class.py----基于spinup修改的TD3类。\n│   │       └── td3_per_her.py\n│   └── tf1\n│       ├── ddpg_sp\n│       │   ├── core.py\n│       │   ├── DDPG_class.py------------直接从spinup复制而来，将算法由函数形式封装为类。\n│       │   ├── DDPG_per_class.py--------添加了PER机制。\n│       │   ├── DDPG_per_her_class.py----不继承offPolicy基类的DDPG-HER-PER实现。\n│       │   ├── DDPG_per_her.py----------同时加入HER和PER。\n│       │   ├── DDPG_sp.py---------------直接从spinup复制而来，并对部分细节进行了调整。\n│       │   ├── __init__.py\n│       ├── __init__.py\n│       ├── offPolicy\n│       │   ├── baseOffPolicy.py\n│       │   ├── core.py\n│       │   ├── norm.py\n│       ├── sac_auto--------------------自动调节alpha参数的SAC版本。\n│       │   ├── core.py\n│       │   ├── __init__.py\n│       │   ├── sac_auto_class.py\n│       │   ├── sac_auto_per_class.py\n│       │   └── sac_auto_per_her.py\n│       ├── sac_sp--------------------alpha=0.2的SAC版本。\n│       │   ├── core.py\n│       │   ├── __init__.py\n│       │   ├── SAC_class.py\n│       │   ├── SAC_per_class.py\n│       │   ├── SAC_per_her.py\n│       │   ├── SAC_sp.py\n│       └── td3_sp\n│           ├── core.py\n│           ├── __init__.py\n│           ├── TD3_class.py\n│           ├── TD3_per_class.py\n│           ├── TD3_per_her_class.py\n│           ├── TD3_per_her.py\n│           ├── TD3_sp.py\n├── arguments.py-----------------------超参数脚本\n├── drlib_tree.txt\n├── HER_DRLib_exps---------------------演示实验日志\n│   ├── 2021-02-21_HER_TD3_FetchPush-v1\n│   │   ├── 2021-02-21_18-26-08-HER_TD3_FetchPush-v1_s123\n│   │   │   ├── checkpoint\n│   │   │   ├── config.json\n│   │   │   ├── params.data-00000-of-00001\n│   │   │   ├── params.index\n│   │   │   ├── progress.txt\n│   │   │   └── Script_backup.py\n├── memory\n│   ├── __init__.py\n│   ├── per_memory.py--------------mofan版本\n│   ├── simple_memory.py-----------mofan版本\n│   ├── sp_memory.py---------------spinningup tf1版本，简单的均匀缓冲区记忆库类。\n│   ├── sp_memory_torch.py---------spinningup torch-gpu版本，简单的均匀缓冲区记忆库类。\n│   ├── sp_per_memory.py-----------spinningup tf1版本，PER缓冲区记忆库类。\n│   └── sp_per_memory_torch.py\n├── pip_requirement.txt------------pip安装依赖，不包括mujoco-py、gym、tf、torch。\n├── spinup_utils-------------------来自spinningup的一些工具，用于结果绘图、日志记录等。\n│   ├── delete_no_checkpoint.py----删除未完成实验的文件夹。\n│   ├── __init__.py\n│   ├── logx.py\n│   ├── mpi_tf.py\n│   ├── mpi_tools.py\n│   ├── plot.py\n│   ├── print_logger.py------------将终端输出的信息保存到本地日志文件。\n│   ├── run_utils.py---------------目前尚未使用，还需学习多进程技术。\n│   ├── serialization_utils.py\n│   └── user_config.py\n├── train_tf1.py--------------tf1版本的主程序\n└── train_torch.py------------torch版本的主程序\n\n\n```\n\n\n## 4. HER介绍：\n\nHER的实现基于以下代码：\n\n1. 可以收敛，但代码难度较高。https:\u002F\u002Fgithub.com\u002Fopenai\u002Fbaselines\n\n2. 也可以收敛，但仅限于DDPG-torch-cpu。https:\u002F\u002Fgithub.com\u002Fsush1996\u002FDDPG_Fetch\n\n3. 无法收敛，但代码较为简单。https:\u002F\u002Fgithub.com\u002FStable-Baselines-Team\u002Fstable-baselines\n\n- 论文：https:\u002F\u002Farxiv.org\u002Fpdf\u002F1709.10089.pdf\n\n\n### 4.1. 我的理解与视频：\n\n>用“种瓜得豆”来解释HER：\n第一步在春天（state），种瓜（origin-goal）得豆，通过HER，把目标换成种豆，按照之前的操作，可以学会在春天种豆得豆；\n第二步种米得瓜，学会种瓜得瓜；\n即只要是智能体中间经历过的状态，都可以当做它的目标，进行学会。\n即如果智能体能遍历所有的状态空间，那么它就可以学会达到整个状态空间。\n\n论文解析视频：https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1BA411x7Wm\n\n代码解析文档：https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fblob\u002Fmain\u002Falgos\u002Fpytorch\u002FoffPolicy\u002FHER_introduction.md\n\n\n\n### 4.2. HER的关键技巧：\n\n1. 状态归一化：使FetchPush-v1任务的成功率从0提升至1。\n2. Q值裁剪：使FetchPickAndPlace-v1任务的成功率从0.5提升至0.7。\n3. 动作L2正则化：对Push任务效果不明显。\n\n### 4.3. HER-DDPG在FetchPush-v1上的表现：\n\n\u003Cp float=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_bf99150fad00.png\" \u002F>\n\u003C\u002Fp>\n\n## 5. PER介绍：\n\n参考：[off-policy全系列（DDPG-TD3-SAC-SAC-auto）+优先经验回放PER-代码-实验结果分析](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F111600080)\n\n## 6. 总结：\n\n这个库我封装了好久，整个代码库简洁、方便、功能比较齐全，在环境配置这块几乎是手把手教程，希望能给大家节省一些时间~\n\n从零开始配置，不到两小时，从下载代码库，到配置环境，到在自己的环境中跑通，全流程非常流畅。\n\n### 6.1. 下一步计划添加的功能：\n\n1. PPO的封装；---PPO不封装了！机械臂操作不用PPO~\n\n2. DQN的封装；---这个好像用的人也不多，放弃了~\n\n3. 多进程的封装；\n\n4. ExperimentGrid的封装；\n\n\n## 7. 联系方式：\n\n深度强化学习-DRL：799378128\n\n欢迎关注知乎账号：[未入门的炼丹学徒](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fheda-he-28)\n\nCSDN账号：[https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq)\n\n\n## 星标历史\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_readme_da637fac7c0f.png)](https:\u002F\u002Fstar-history.com\u002F#kaixindelele\u002FDRLib&Timeline)\n\n## 欢迎引用！\n\n@inproceedings{luo2023d2sr,\n  title={D2SR: Transferring dense reward function to sparse by network resetting},\n  author={Luo, Yongle and Wang, Yuxin and Dong, Kun and Liu, Yu and Sun, Zhiyong and Zhang, Qiang and Song, Bo},\n  booktitle={2023 IEEE International Conference on Real-time Computing and Robotics (RCAR)},\n  pages={906--911},\n  year={2023},\n  organization={IEEE}\n}","# DRLib 快速上手指南\n\nDRLib 是一个简洁的深度强化学习库，集成了几乎所有主流的 Off-policy RL 算法（DDPG, TD3, SAC），并原生支持 **HER** (Hindsight Experience Replay) 和 **PER** (Prioritized Experience Replay)。该库基于 OpenAI Spinning Up 重构，提供 TensorFlow 1.14 和 PyTorch 两个版本，专为机器人控制任务优化，且对 PyCharm 调试友好。\n\n## 1. 环境准备\n\n*   **操作系统**: Linux (推荐) 或 Windows\n*   **Python 版本**: 3.6.9 (必须)\n*   **深度学习框架**:\n    *   TensorFlow-gpu == 1.14.0\n    *   PyTorch == 1.6.0 (支持 CUDA 9.2\u002F10.1\u002F10.2 或 CPU)\n*   **仿真环境**: MuJoCo, Gym\n*   **并行计算**: MPI (用于多进程加速)\n\n## 2. 安装步骤\n\n请严格按照以下顺序执行，建议总耗时控制在 2 小时内。\n\n### 2.1 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib.git\ncd DRLib\n```\n\n### 2.2 创建 Conda 环境\n```bash\nconda create -n DRLib_env python=3.6.9\nconda activate DRLib_env\n```\n\n### 2.3 安装基础依赖\n首先尝试通过 pip 安装：\n```bash\npip install -r pip_requirement.txt\n```\n\n**注意**：如果 `mpi4py` 安装失败（常见情况），请使用 conda 强制安装（这是最稳妥的方式）：\n```bash\nconda install mpi4py\nconda install seaborn==0.8.1 scipy -y\n```\n> 若仍遇到问题，可参考作者提供的详细教程：[ubuntu-windows-install-mpi4py](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109125425)\n\n### 2.4 安装深度学习框架\n\n**选项 A: 安装 TensorFlow (GPU 版)**\n```bash\nconda install tensorflow-gpu==1.14.0\n```\n\n**选项 B: 安装 PyTorch (根据你的 CUDA 版本选择其一)**\n```bash\n# CUDA 9.2\nconda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=9.2 -c pytorch\n\n# CUDA 10.1\nconda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch\n\n# CUDA 10.2\nconda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch\n\n# 仅 CPU 版本\nconda install pytorch==1.6.0 torchvision==0.7.0 cpuonly -c pytorch\n```\n> **国内加速提示**：如果上述命令下载缓慢，可使用豆瓣源安装 PyTorch：\n> ```bash\n> pip --default-timeout=100 install torch -i http:\u002F\u002Fpypi.douban.com\u002Fsimple --trusted-host pypi.douban.com\n> ```\n\n### 2.5 安装仿真环境 (MuJoCo & Gym)\n由于 MuJoCo 授权和环境配置较为复杂，请直接参考作者提供的图文教程进行安装：\n*   **MuJoCo 安装**: [参考链接](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F109012048)\n*   **Gym 安装**: [参考链接](https:\u002F\u002Fblog.csdn.net\u002Fhehedadaq\u002Farticle\u002Fdetails\u002F110423154)\n\n## 3. 基本使用\n\n### 3.1 配置参数\n在运行训练前，需修改 `arguments.py` 文件，设置以下内容：\n*   环境名称 (`env`)\n*   强化学习算法 (`RL-algorithm`, 如 DDPG, TD3, SAC)\n*   是否启用 HER 和 PER\n*   GPU ID 等其他超参数\n\n### 3.2 开始训练\n根据选择的框架运行对应的训练脚本。\n\n**TensorFlow 版本示例 (SAC + HER + PER):**\n```bash\npython train_tf.py\n```\n\n**PyTorch 版本示例:**\n```bash\npython train_torch.py\n```\n\n### 3.3 模型保存与加载\nDRLib 支持自动保存网络结构、回放缓冲区及归一化参数。\n\n*   **保存模型**:\n    ```bash\n    python train_torch_mpi_norm_save.py\n    ```\n*   **加载并测试模型**:\n    ```bash\n    python train_torch_mpi_norm_load.py\n    ```\n\n### 3.4 结果可视化\n使用增强的绘图脚本查看实验结果（支持自动排序、固定颜色、保存图片等）：\n\n```bash\n# 语法：python spinup_utils\u002Fplot.py \u003C数据目录> --select \u003C任务名称>\npython spinup_utils\u002Fplot.py HER_DRLib_mpi1\u002F2 --select Push\n```\n> **Windows 用户提示**：建议在路径中使用绝对路径，以免找不到文件。","某机器人实验室的研究团队正在开发一款机械臂抓取系统，需要利用深度强化学习让机械臂在稀疏奖励环境下快速学会推物体到指定位置。\n\n### 没有 DRLib 时\n- **算法集成困难**：研究人员若想同时使用 HER（ hindsight experience replay）和 PER（优先经验回放）来提升样本效率，需手动修改底层代码，极易引入 Bug 且耗时数周。\n- **调试体验糟糕**：基于原始 Spinning Up 框架的多进程封装复杂，在 PyCharm 中直接断点调试经常报错，导致排查问题如同“盲人摸象”。\n- **框架选择受限**：团队内部既有习惯 TensorFlow 的成员也有倾向 PyTorch 的成员，缺乏统一且支持 GPU 加速的双框架代码库，协作成本高。\n- **环境配置繁琐**：从零搭建包含 Mujoco、MPI 及特定版本深度学习库的环境往往需要数天，依赖冲突频发，新手难以入手。\n\n### 使用 DRLib 后\n- **一键启用高级策略**：只需在参数文件中勾选选项，即可立即为 SAC 或 TD3 等算法集成 HER 与 PER 功能，将原本数周的集成工作缩短至几分钟。\n- **本地调试流畅**：DRLib 简化了多进程包装器，研究人员可直接在 PyCharm 中进行单步调试，快速定位逻辑错误，开发效率显著提升。\n- **双框架灵活切换**：团队可根据需求自由选择 TF1 或 PyTorch 版本，且 PyTorch 版本原生支持 GPU 加速，满足了不同成员的开发习惯与性能需求。\n- **极速环境部署**：依托详细的安装教程和预设脚本，团队成员能在两小时内完成从零到可运行的全套环境配置，迅速投入实验。\n\nDRLib 通过高度集成的算法模块与友好的调试设计，将机器人强化学习的研发门槛从“专家级”降低至“工程级”，大幅加速了从理论验证到真机部署的进程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkaixindelele_DRLib_bf99150f.png","kaixindelele",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkaixindelele_b12bcb80.jpg","USTC-PhD Student @DRL","1985790413@qq.com","yongleluo","https:\u002F\u002Fchatpaper.org\u002F","https:\u002F\u002Fgithub.com\u002Fkaixindelele",[24],{"name":25,"color":26,"percentage":27},"Python","#3572A5",100,560,70,"2026-04-01T07:43:42","MIT",4,"Linux, Windows","可选。若使用 TensorFlow-GPU 需 CUDA 兼容显卡及对应驱动；若使用 PyTorch-GPU，支持 CUDA 9.2, 10.1, 10.2。未明确具体显存要求。","未说明",{"notes":37,"python":38,"dependencies":39},"1. 该项目基于 OpenAI SpinningUp 修改，同时支持 TensorFlow 1.14 和 PyTorch 1.6 两个版本。\n2. Windows 用户在使用绘图脚本时建议使用绝对路径。\n3. MPI (mpi4py) 在 Windows 上安装可能失败，建议通过 'conda install mpi4py' 安装。\n4. 多进程功能 (MPI) 在 TF 版本已调通，PyTorch 版本尚未完全测试稳定。\n5. 需要配置 MuJoCo 物理引擎环境。","3.6.9",[40,41,42,43,44,45,46,47],"tensorflow-gpu==1.14.0","pytorch==1.6.0","torchvision==0.7.0","mpi4py","seaborn==0.8.1","scipy","mujoco-py","gym[all]",[49],"开发框架",2,"ready","2026-03-27T02:49:30.150509","2026-04-08T13:57:43.413941",[55,60,65,70,75,80,85,90],{"id":56,"question_zh":57,"answer_zh":58,"source_url":59},24476,"SAC、TD3 和 DDPG 算法中为什么没有 Value Network（V 网络）的实现？","在 SAC、TD3 和 DDPG 这些算法的标准实现中，通常只包含 Q Network（Q 网络）和 Policy Network（Actor 网络），并不包含独立的 Value Network（V 网络）。虽然部分理论推导或变体中会提及 V 网络，但在该代码库及主流实现中，仅使用双 Q 网络和策略网络即可完成训练，无需定义额外的 V 网络。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F12",{"id":61,"question_zh":62,"answer_zh":63,"source_url":64},24477,"如何绘制带有阴影区域（标准差\u002F置信区间）的平均性能曲线？","要绘制带阴影的平均曲线，需确保实验数据文件夹结构正确。通常需要将不同随机种子的结果放在同一算法名称下的子文件夹中。运行绘图命令时，路径只需指定到包含多个种子文件夹的上级目录即可，例如：`python spinning_utils\u002Fplot.py .\u002FHER_DRLib_exps\u002Fyour_exp_name... --smooth=3`。如果只运行了一个算法或路径层级过深\u002F过浅，可能导致无法聚合数据从而画不出阴影区域。可参考 `spinup_utils\u002Fplot_demo_files` 文件夹中的示例数据结构进行调整。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F8",{"id":66,"question_zh":67,"answer_zh":68,"source_url":69},24478,"DRLib 是否可以直接适配非 Goal-based 的 Gym 环境（如 Pendulum-v0）？","不能直接适配。代码库默认的 `arguments.py` 参数是针对 HER 算法封装的，专门适用于基于目标（Goal-based）的环境。若要运行如 Pendulum-v0 这类普通环境，需要进行以下修改：1. 将参数中的 `her` 设置为 `False`；2. 手动修改观测值（obs）到状态（state）的转换逻辑；3. 可能需要自行调试主函数。建议参考原版 SpinningUp 的例程自行编写针对普通环境的启动脚本。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F6",{"id":71,"question_zh":72,"answer_zh":73,"source_url":74},24479,"HER 算法中 Replay Buffer 的数据存储策略是怎样的？","该代码库采用第一种策略：每与环境交互一个 episode 后，立即对该 episode 的所有 transitions 进行 re-goal 处理（每个 transition 生成 4 个重标记样本加 1 个原始样本），然后存入普通的 FIFO（先入先出）Buffer 中。这种方法的优点是复用普通的 Buffer 结构和采样函数，无需复杂改动；缺点是打乱了原始 episode 的顺序信息，且 Buffer 容量需要扩大约 5 倍。另一种复杂的按 episode 索引采样的方法未被采用，因为两者最终强化学习性能一致。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F4",{"id":76,"question_zh":77,"answer_zh":78,"source_url":79},24480,"在 SSH 远程连接或使用 PyCharm 时运行绘图脚报错或无显示怎么办？","如果在 SSH 远程服务器上运行绘图脚本，必须在 `plot.py` 文件的 `plt.figure()` 调用之前添加以下代码以切换后端：`plt.switch_backend('agg')`。如果是 PyCharm 本地运行报错，请检查 PyCharm 的科学模式或图形后端设置。添加后端切换代码可解决大多数因无图形界面导致的崩溃问题。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F2",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},24481,"使用 HER 时出现 'ValueError: could not broadcast input array' 维度不匹配错误如何解决？","该错误通常发生在将字典类型的观测值转换为数组时，维度与预设 Buffer 形状不符。如果在运行原项目代码（包含特定的 gym 环境封装），需要在 `convert_dict_to_array` 函数的 `exclude_key` 列表中增加需要排除的键名（例如 \"grip_goals\" 或其他特定环境的 goal 键），以确保拼接后的数组维度正确。如果不引用原项目自带的 gym 文件夹而使用标准环境，则可能无需此更改。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F11",{"id":86,"question_zh":87,"answer_zh":88,"source_url":89},24482,"在 Windows 系统下运行代码遇到 'UnicodeDecodeError: gb k codec can't decode byte' 错误如何修复？","这是 Windows 默认编码（GBK）与文件编码（UTF-8）冲突导致的。请找到报错的文件（通常是 `spinup_utils\u002Flogx.py`），定位到打开文件的代码行，将 `open(root_dir, 'r')` 修改为 `open(root_dir, 'r', encoding='utf-8')`，显式指定文件读取编码为 UTF-8 即可解决。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F9",{"id":91,"question_zh":92,"answer_zh":93,"source_url":94},24483,"PyTorch 版本的 TD3 多进程代码（MPI_td3_per_her.py）是否可用？","不可用。维护者明确指出 PyTorch 版本的多进程代码尚未测试完善，存在潜在错误（如未定义的 `self.ac.v` 等）。目前建议用户使用 TensorFlow 版本的 DDPG\u002FTD3 代码，或者暂时忽略\u002F删除 PyTorch 版本的多进程相关文件，等待后续更新。","https:\u002F\u002Fgithub.com\u002Fkaixindelele\u002FDRLib\u002Fissues\u002F7",[],[97,109,117,126,134,143],{"id":98,"name":99,"github_repo":100,"description_zh":101,"stars":102,"difficulty_score":103,"last_commit_at":104,"category_tags":105,"status":51},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[106,49,107,108],"Agent","图像","数据工具",{"id":110,"name":111,"github_repo":112,"description_zh":113,"stars":114,"difficulty_score":103,"last_commit_at":115,"category_tags":116,"status":51},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[49,107,106],{"id":118,"name":119,"github_repo":120,"description_zh":121,"stars":122,"difficulty_score":50,"last_commit_at":123,"category_tags":124,"status":51},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",144730,"2026-04-07T23:26:32",[49,106,125],"语言模型",{"id":127,"name":128,"github_repo":129,"description_zh":130,"stars":131,"difficulty_score":50,"last_commit_at":132,"category_tags":133,"status":51},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[49,107,106],{"id":135,"name":136,"github_repo":137,"description_zh":138,"stars":139,"difficulty_score":50,"last_commit_at":140,"category_tags":141,"status":51},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[142,49],"插件",{"id":144,"name":145,"github_repo":146,"description_zh":147,"stars":148,"difficulty_score":103,"last_commit_at":149,"category_tags":150,"status":51},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[125,107,106,49]]