[原创] 强化学习框架 rlpyt 源码分析:(6) 模型指标什么时候从 nan 变成有意义的值

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ 观察训练日志引出的问题
以 example_1 为例,在训练的过程中,程序会不断打印出类似于下面的日志(部分内容):

阅读更多

[原创] 强化学习框架 rlpyt 的数据可视化工具:viskit

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
在训练强化学习模型的过程中,rlpyt 产生的大量训练日志看起来无比枯燥,本文展示了如何利用 viskit 把这些日志数据可视化。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(5) 提供额外参数的Mixin类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ Mixin类简介
rlpyt 里面有大量的 *Mixin 类,例如 AtariMixin,MujocoMixin,RecurrentAgentMixin 等,作者并没有为这些名字很怪的class写任何注释,仅从使用的地方来看,很多Mixin类都与agent类有关联。

阅读更多

[原创] 树莓派:这个世界是你们的,是我们的,但终究是Python的!

要查看更多树莓派相关文章,请点击这里

很多年前我刚开始玩树莓派的时候,Python还是个“很不火”的编程语言,而如今Python借着深度学习(Deep Learning)的东风,已经毫无疑问地成了世界上最耀眼的明日之星;想当年我刚开始玩树莓派的时候,使用WiringPi开发库、在C++下开发GPIO应用是一个比较明智的选择,而如今树莓派上的Pyhton GPIO库已经百花齐放,并且多个树莓派的OS都已经内置了一或多个Python GPIO开发包,真正做到了:你只要装好系统,就马上能用Python写程序操作GPIO,立等可用。

阅读更多

[原创] 在树莓派上安装 Miniconda 并创建 Python 3.6环境

要查看更多树莓派相关文章,请点击这里

在树莓派3上安装Miniconda,并不能安装普通的Linux版,你得安装 for ARM v7 的版本:

wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh

chmod +x Miniconda3-latest-Linux-armv7l.sh
./Miniconda3-latest-Linux-armv7l.sh
跟着向导一步步走下去就可以完成安装。

阅读更多

[原创] 树莓派的 Ubuntu MATE 18.04 系统无法 apt upgrade 更新的问题

要查看更多树莓派相关文章,请点击这里

在树莓派上安装好Ubuntu MATE 18.04之后,我在试图更新系统的时候遇到了 bluez 软件包和 内核固件 冲突,从而导致无法进行下去的问题,本文记录一下现场情况以及解决办法。

阅读更多

[原创] Ubuntu MATE 扶一把,我的树莓派3B还能打

要查看更多树莓派相关文章,请点击这里

廉颇老矣,尚能饭否?
周末在家写代码的时候,斜眼看见躺在我桌子上正在吃灰的树莓派3B(V1.2),我突然想把它的系统更新一下。
时至2019年11月,外面已经是树莓派4代(2019.06发布)的天下了,而3B这种老型号,最适合拿来做遥控车之类的儿童玩具了。

阅读更多

[原创] Python的list.append()比np.append()更快

在Python中,假设你最终想得到一个NumPy array,而它是通过append大量数据得到的,那么有两种办法:
先创建一个Python list,append完数据之后再把这个list转成NumPy array。
 直接创建一个NumPy array,用 np.append() 函数来append数据。
第1种比第2种快很多,尤其是当你在一个for循环中频繁做这个事情的时候,差距就更明显了。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(3) 相当简洁又十分巧妙的EpsilonGreedy类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(4) 收集训练数据的sampler类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ sampler的主要功能
训练强化学习模型需要训练数据,收集训练数据的工作就是由sampler类做的。
收集训练数据,就需要在environment中步进,因此environment的实例化工作也在sampler中完成。

阅读更多

[原创] PyTorch模型 .pt,.pth,.pkl 的区别

我们经常会看到后缀名为 .pt,.pth,.pkl 的PyTorch模型文件,这几种模型文件在格式上有什么区别吗?
其实它们并不是在格式上有区别,而只是后缀上不同而已(仅此而已)。在用 torch.save() 函数保存模型文件的时候,各人有不同的喜好,有些人喜欢用 .pt 后缀,有些人喜欢用 .pth 或 .pkl。用相同的 torch.save() 语句保存出来的模型文件没有什么不同。
在PyTorch官方的文档/代码里,有用 .pt 的也有用 .pth 的
据某些文章的说法,一般惯例是使用 .pth,但是官方文档里貌似 .pt 更多,而且官方也不是很在意固定用一种,大家就自便吧。

阅读更多

[原创] 强化学习(Reinforcement Learning)文章合集

强化学习是一种机器学习范式,通常用于让机器自主进行决策和学习。以下是一些强化学习的应用:

1. 游戏AI:使用强化学习算法训练游戏AI,在玩家水平越来越高的时候,AI能够逐渐提高自己的技能。
2. 机器人控制:对于一个机器人而言,强化学习可以帮助它在不同的任务下找到最优解决方案,如自主驾驶车辆、无人机控制、工厂物流等。
3. 资源管理:例如电力系统、水资源等,这些领域都需要有效的调度和分配资源,在这些领域应用强化学习可以帮助实现更优秀的效果。
4. 自然语言处理:通过基于强化学习算法训练模型,可以使计算机更好地理解自然语言,并根据上下文做出正确的回答或者翻译。