[原创] 强化学习框架 rlpyt 的 size mismatch 错误原因及解决办法

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
当你使用 rlpyt 来实现自己的强化学习程序时,可能会遇到类似于下面这样的错误:

RuntimeError: size mismatch, m1: [1 x 365], m2: [461 x 32] at /tmp/pip-req-build-_357f2zr/aten/src/TH/generic/THTensorMath.cpp:752

本文分析错误原因及解决办法。

阅读更多

[原创] 当美国人听说我已经实现了口罩自由之后...

两天前的4月2日,在美国马萨诸塞州(也就是麻省理工学院MIT所在的那个州),有一个大新闻:在该州抗疫物资已经紧缺得十万火急,而又无法得到联邦政府援助的情况下,州长查理·贝克(Charlie Baker)打通各种关系,从中国订购了170万N95口罩,经过相当复杂的一系列联络与协调,在中国驻纽约领事馆、中国企业的大力支持下,最后通过职业橄榄球队“新英格兰爱国者”老板罗伯特·卡夫(Robert Kraft)的一架私人波音767飞机,从中国深圳运回了首批120万个口罩。
州长和爱国者的老板一下子成了很多人心目中的英雄。
我浏览了和此新闻相关的很多Twitter信息流,总结出来几个现象:
(1)很多美国人使劲表扬州长和“爱国者队”,有很多路转粉;
(2)也有很多美国人骂美国联邦政府太没用,骂散装美国各自为政的混乱场面;
(3)永远少不了一部分美国人在一如既往地反华,说这是中国来的口罩,就算放到我面前我都不用!(然而N95是分发到抗疫前线的医务人员手里的,根本不会送给你们这些群众好吗!)

阅读更多

[原创] 从近期与几位国外友人的交流看欧美人民在疫情下的心情

Cambly是我一直用来和国外友人(英语口语)交流的平台,每周2次,从不间断。最近,中国大陆疫情得到了极大缓和,而欧美疫情则迎来了大爆发。我近几周和一些国际友人聊了聊,我觉得从他们的谈话中可以一窥欧美普通民众对他们国家政府“抗疫”不力的无奈心情。

阅读更多

[原创] 来自丹麦的妹子Leila,修机械玩摩托写代码,酷就一个字

点开这篇文章的各位,你们一定会觉得很奇怪:这是什么奇怪的标题?你不是一般只发技术文章的吗?
并不是。和学习相关的文章我也会发。作为一个最近几年来都在顽强地每天坚持背英语单词,并且自掏腰包和老外练口语也坚持了一年多的人,我可以算是在英语学习上也没有退步,所以我想和大家分享一下英语口语学习中的一些事。

今天我要向大家推荐Cambly上的一个丹麦妹子,Leila老师。昨天已经是我第二次和她交流了。
等等,Cambly是什么奇怪的东西?
Cambly是一个和老外(native English speakers)视频聊天练习英语口语的平台——当然不是免费的,但是如果你用推荐码 DZZZ 注册一个账号,能免费得到15分钟的使用时间,反正不要钱,不妨尝试一下。

阅读更多

[原创] 配置iTerm2(MacOS)的"站点管理器"

很多terminal client都有“站点管理器”功能,也就是说把服务器连接参数保存在配置里,用户可以通过在图形界面上点击的方式就能连接上指定的服务器,不再需要手工输入服务器IP、用户名、密码。
SecureCTR,Xshell,ZOC等都有这种功能,但它们都不是免费软件。
在MacOS上,ZOC算是一个功能很强大的terminal,但其价格也是贵得离谱(2019年的价格是将近80美元/单用户授权),而免费又最流行的terminal——iTerm2,其对“站点管理器”的支持却不那么直接,需要经过一定的配置才能用起来,不过,就算是为了省那80美元,也值得我们花一些时间来配置一番,下面就走起来。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(10) 基于CPU的并行采样器CpuSampler,worker的实现

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 本文是上一篇文章的续文,继续分析CpuSampler的源码。
本文将分析 CPU并行模式下的 ParallelSamplerBase 类的worker实现。

▶▶ worker的代码在哪
rlpyt/samplers/parallel/worker.py

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(9) 基于CPU的并行采样器CpuSampler

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 本文是上一篇文章的续文,继续分析CpuSampler的源码。
我们已经知道了CpuSampler有两个父类:BaseSampler 和 ParallelSamplerBase。其中,BaseSampler主要是定义了一堆接口,没什么好说的,因此本文接着分析另一个父类 ParallelSamplerBase。在 ParallelSamplerBase 中,初始化函数 initialize() 做了很多重要的工作,已经够写一篇长长的文章来分析了,这正是本文的主要内容。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(8) 基于CPU的并行采样器CpuSampler

写这篇文章的过程中,我改稿改到怀疑人生,因为有些我自己下的结论在看了很多次源码之后又自我否定了多次,所以这篇文章花了我很长时间才完工。虽然完稿之后我仍然不敢保证绝对正确,但这至少是在我当前认知情况下我“自以为”正确的版本了,写长稿不易,望理解。

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 

在单机上支持丰富的并行(Parallelism)模式是 rlpyt 有别于很多其他强化学习框架的一个显著特征。rlpyt可以使用纯CPU,或CPU、GPU混合的方式来并行执行训练过程。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(7) 模型参数是在哪更新的

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。
本文简要分析一下在rlpyt中,强化学习模型的参数是在什么地方被更新、怎么被更新的。

阅读更多

[原创] 强化学习框架 rlpyt 并行(parallelism)原理初探

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 

在单机上全面的并行(Parallelism)特性是 rlpyt 有别于很多其他强化学习框架的一个显著特征。在前面的简介文章中,已经介绍了 rlpyt 支持多种场景下的并行训练。而这种“武功”是怎么修炼出来的呢?它是站在了巨人的肩膀上——通过PyTorch的多进程(multiprocessing)机制来实现的。
所以你知道为什么 rlpyt 不使用TensorFlow这样的框架来作为后端了吧,因为TensorFlow根本就没有这种功能。TensorFlow只能靠类似于Ray这样的并行计算框架的帮助,才能支撑起全方位的并行特性。

阅读更多

[原创] 强化学习的Atari环境下的frame skipping(跳帧)是指什么

查看更多强化学习的文章请点击这里

Atari是强化学习领域最常用的一个游戏实验环境,在很多文章以及代码中,会看到frame skipping(跳帧)这个概念,那么它到底是指什么呢?

阅读更多

[原创] 强化学习框架 rlpyt:如何使用预训练(pre-trained)的model

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文描述了在 rlpyt 框架下,如何使用一个预训练过的(pre-trained)model作为起点,来训练自己的RL模型的过程。

阅读更多

[原创] 强化学习框架 rlpyt:如何保存训练过程中的所有model

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文描述了如何保存迭代训练过程的所有model,以及背后的逻辑。

阅读更多

[原创] 强化学习框架 rlpyt:如何同时输出gaussian(高斯)和categorical(类别)的action

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

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文记录 rlpyt 的一些issue提及的问题以及解决方案。

阅读更多

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

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

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

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

阅读更多