李宏毅强化学习个人笔记 - 概览
课程链接:
【【李宏毅】2020 最新课程 (完整版) 强化学习 - 71.作業十五 ML Lecture 23-1 - Deep Re】
其他人的笔记:
强化学习-李宏毅-学习笔记 <总> - 恒大大的文章 - 知c乎https://zhuanlan.zhihu.com/p/344975862
之前(去年)看过的内容,当时是把笔记写在了草稿纸上。因为怕忘+怕被丢到垃圾桶里,所以就把笔记弄成电子版的,顺便重看一遍,当成一个温故而知新的过程。
传送门:
基于策略的方法
基于值的方法
基于策略的方法 - PPO
基于值的方法 - Q-learning 简介
基于值的方法 - Q-learning 在训练时的一些技巧
基于值的方法 - 对于连续动作的 Q-learning
Actor-Critic
其他姿势
基本概念深入理解强化学习(一)- 概念和术语 - 莫冉的文章 - 知乎https://zhuanlan.zhihu.com/p/478594917
环境(environment):智能体生存以及交互的世界,譬如熟知的 gym 环境
智能体(agent):可以是人 ...
python multiprocessing 多进程踩坑
之所以写这个东西,还是因为之前操作系统学了个寂寞,考前背个板混个分数就过了。但是这玩意儿在实际应用的时候,才会体会到某些坑爹的地方~
众所周知,在 python 中,I/O 密集型任务 可以用多线程的方式来实现(threading 库);然而,对于 计算密集型 任务,由于 python 中全局锁 GIL 的存在,多线程并不能起到一个加速的作用。所以此时,一般使用多进程的方式实现(multiprocessing 库)。虽然对于多进程,网上资料一搜一大把,但是这并不妨碍实际操作过程中会踩到坑。
需求分析现在我们有一个 worker 函数,接受不同的输入参数 args,之后进行一些计算。每个进程都可以起一个 worker 函数。
然而,在计算的时候,我们需要借助一些计算资源(如 GPU、网络服务器等)。那么我们可以用一个 multiprocessing.Array 来管理这些资源。
下面,以使用 GPU 为例:现在机器上有 4 台 GPU,而每台 GPU 上最多可以同时挂 5 个程序(这样不会炸显存)。那么我们可以维护这样一个数组:
1shared_resource_buf = multip ...
不定时更新的 Keras 踩坑记
众所周知,一般 research 里面所使用的炼丹框架以 PyTorch 居多。然而在工业界的模型部署中,TensorFlow 因能较好地支持多 GPU 的特性而广受青睐。
其中,Keras 以 TensorFlow 为后端(之前的 Keras 版本也能以 Theano、MXNet 等为后端),对 TensorFlow 的诸多 API 进行了封装,为模型的部署进一步降低了门槛。并且,TensorFlow 也把 Keras 集成进来,作为 TensorFlow 的一部分。
俺也是最近才系统性地接触到 Keras,之前都是 PyTorch 居多,用 TensorFlow 或者 Keras 仅仅是在复现其他人的工作上会用到。所以这不可避免地就会踩到很多坑。在这里记录下来,以方便之后遇到类似坑的时候,能快速反应下来是出现了什么问题。本人机器配置如下:
操作系统:Windows 11 家庭中文版 21H2
显卡:NVIDIA GeForce RTX 3060
Python 版本:3.9.7
CUDA 版本:11.6(可能就是因为这个 11.6 带来了之后的一系列巨坑……现在跑去 NVIDIA ...