Technic

百度2020年6月强化学习打卡营学习感想/资料汇总

前段时间看到朋友分享的《强化学习7日打卡营-世界冠军带你从零实践》免费课程,第一时间报名参加了。虽然自己也在做RL的研究并做了和RL相关的项目,学习下来还是收获颇丰,温故知新。课程从最基本的PARL环境搭建以及强化学习介绍入手,逐步过渡到RL的经典算法SARSA, Q-Learning, DQN, DDPG的介绍和实例分析,深入浅出,讲解的非常细致。实例分析基本可以说是对核心代码进行“手撕”了,讲解非常细致,相信即便没有RL基础的同学也可以很好地理解。最深刻的印象是课程中使用的例子/比喻都很形象,比如把DQN的Target网络使用原因比喻成用剑射兔子,如果不把兔子固定下来(移动靶),就很难很好的训练。下边附上这个例子的截图,感受下有多形象。 除了课程内容本身之外的最大感受就是主办方真的充满热情、诚意满满。每次的课程直播完之后,主讲科科老师都会尽快上传录播,并按照内容分成不同的小视频。“尽快”的意思是,晚上21点30多直播结束,当晚录播就整理并上传到平台了。印象中第一次录播上传并在群里通知大家的时候,已经是国内时间凌晨一点半多了。另外班班也是相当用心了,比如,最后一天结营的时候因为电脑原因录屏失败了,所以她国内时间凌晨二三点自己重录了一次以便上传到平台。重录的时候刚好我没有关直播页面,我这边是晚上八九点,正吃着零食呢,听着电脑里发出异响,还纳闷了好一会。于是就这么成了班班的唯一的观众。 好了,说完了感想,还是把资料汇总一下。以下内容均复制自AI Studio里课程的资料汇总中的不同的帖子,仅是进行了整合以便于查看。此外其实还有更多的课程实例,大家的实践项目,以及很多同学做的详细的课程笔记,可以直接去AI Studio或者相应的链接查看。 强化学习7日打卡营-世界冠军带你从零实践 伯克利2018 Deep RL课程 强化学习库 PARL – 含RLschool/tutorial/这次课的作业答案等 经典书籍推荐:《Reinforcement Learning:An Introduction(强化学习导论)》(强化学习教父Richard Sutton 的经典教材) 经典理论课程推荐: 2015 David Silver经典强化学习公开课、 UC Berkeley CS285 、斯坦福 CS234 强化学习经典论文 DQN.    “Playing atari with deep reinforcement learning.”   A3C.     “Asynchronous methods for deep reinforcement learning.”   DDPG.  “Continuous control with deep reinforcement learning.”   PPO.     “Proximal policy optimization […]

Continue Reading

Technic

好用在线Python环境及免费GPU算力

这是个资源汇总贴子,主要是把一些提供GPU算力的在线python环境汇总整理,另外文末添加了两个我刚看到的跟金融数据联系比较紧密的在线python调试和仿真交易环境。(提醒一下手机使用Dark模式的读者,后文每个环境的标题都是带链接的,而且正文中也是有些超链接的,不过在Dark模式下的默认字体颜色可能区分不太出来。) 带GPU算力的在线环境 百度AI Studio(首推) 先说一下百度飞桨(PaddlePaddle),它是一个国产的灵活高效的产业级深度学习框架,提供了丰富的预训练模型、模型库、工具组件等。AI Studio是基于飞桨的一站式开发平台,有现成的python环境,直接创建或者分享别人的项目使用即可,项目的形式和界面与Jupyter Notebook很像,很好上手。同时它还包括了各种竞赛(有奖金)、数据集、课程以及完善的学习社区,便于学习和应用。AI studio是基于飞桨的,之前也可以在Notebook直接安装tensorflow,不过现在已经不行了,必须通过控制台安装。如果真的是急着用GPU和TF,可以看看我之前写的《教你在百度AI Studio下安装tensorflow和Keras》。不过有时间的话学习了解一下飞桨也是非常不错的,平台上也有免费的课程可以上,话说回来,毕竟免费用人家的GPU。 运行项目可以选择基础版或者高级版,区别如下: 基础版 (免费使用) CPU: 2 Cores. RAM: 8GB. Disk: 100GB 高级版 (1算力卡/小时) GPU: Tesla V100. Video Mem: 16GB CPU: 8 Cores. RAM: 32GB. Disk: 100GB 高级版的算力卡通过登录和运行项目免费获得(每天可以获得12小时的算力卡,有效期好像是2天还是3天的),也可以通过参加AI studio中的某些竞赛获得免费算力卡,比如最近正在进行的传染病预测竞赛可以提供100小时的算力卡。 谷歌Colaboratory(Colab) 谷歌的在线python测试平台,界面也是和Jupyter Notebook很像,Colab笔记本直接存在google drive里。不知道国内能访问么,如果能翻墙使用,或者本身常使用google drive的话,是很方便的。提供免费的GPU,具体Colab使用哪个型号的GPU我没有查到,不过谷歌云服务提供的GPU是包括K80到V100系列的。另外如果想方便的使用TF,那么Colab是个不错的选择。 Kaggle 是很火的数据建模和数据分析竞赛平台,建立于2010年,也是提供了很多竞赛、数据集、课程、讨论区等。Kaggle用的是2014年出的Tesla K80系列的GPU,性能上比飞桨的V100还是略逊一些,具体的性能对比可以参考后边这篇文章《免费GPU计算资源哪里有?带你薅薅国内GPU羊毛》。 AWS 亚马逊出的云计算平台,我没有使用过,这个我没有注册账号就不展开讲了。标题链接是.cn结尾的中国官网,上边介绍的是第一年是免费套餐,之后会收费。国外的网址是https://aws.amazon.com。关于这个平台的更多介绍如果有兴趣也可以参看《免费GPU计算资源哪里有?带你薅薅国内GPU羊毛》。总归既然有AI studio,我觉得也没有特别的必要折腾AWS了。   金融相关的两个在线环境 Vitu.ai 和BigQuant 两个很类似,就一起写了,都包括在线环境、金融数据、在线课程等。都主要与金融相关,BigQuant更倾向AI量化,并都可以进行仿真交易。对金融数据有需求的话,可以看看这两个。

Continue Reading

Technic

教你在百度AI Studio下安装tensorflow和Keras

(说在前边,AI Studio真是个好东西) 最近开始使用百度AI Studio,由于对飞桨现在还不熟悉,所以想先跑一下基于keras的模型。不过AI Studio上没有预装keras和tensorflow,得自己装一下。 有两个背景原因先介绍一下: 在notebook中使用pip命令安装的库在环境下次启动时候就没有了。 现在已经没法在notebook中安装tensorflow了,不被允许,所以tf的安装必须在终端里进行。 现在说一下解决方案,以便能够安装和长期使用自己安装的库: 建立一个external-libraries的文件夹 将keras和tensorflow-gpu用pip方式安装并定位在这个文件夹中 之后运行程序的时候,在notebook中使用sys添加之前的文件夹到path中 (注:此方法也适用于其他库) 具体按步骤放一下代码,对于步骤1和2,如果是在终端中操作,用直接复制代码即可;如果是在notebook中,需要在代码前添加叹号“!”(tf的安装必须在终端里进行): 建立文件夹 mkdir /home/aistudio/external-libraries 安装keras和tensorflow-gpu,把PACKAGE_NAME换为对应的库的名字即可 pip install PACKAGE_NAME -t /home/aistudio/external-libraries 在Notebook开头加入以下代码即可 import sys sys.path.append(‘/home/aistudio/external-libraries’) 其他需要说明的问题: 感觉在AI Studio里使用python/python3,pip/pip3没啥区别; 我在安装keras和tensorflow的时候提示# ERROR: paddlepaddle 1.7.1 has requirement scipy<=1.3.1; python_version >= “3.5”, but you’ll have scipy 1.4.1 which is incompatible.不过并没有对结果产生什么影响,因为后续会用keras和tf,所以这个ERROR应该问题不大; 我参考的网页里还提到了以下错误,不过我没有遇到TypeError: init() got an unexpected keyword argument ‘serialized_options’。解决方法是使用!pip install -U […]

Continue Reading

Technic

使用Google Chart制作数据地图非成功小结

本来想用google chart做一个瑞士新冠病例的数据地图,折腾一晚上也没完全实现,在这总结一下经验和发现。最后发现用https://app.datawrapper.de做地图其实很方便,包含很多国家的模板,不少报社也是用的这个网站。 使用Google Chart的主要方法 通过Google sheet直接插入chart。不过发现设置数据地图的显示区域时,除了地图可选的显示区域有限,仅能显示整个世界或者主要的大洲,以及美国,无法仅显示瑞士。 按着Google chart的教程里的geo chart,如这个或者这个制作成html文件后上传到站点。 按着这个教程先在wordpress主题里加载js,然后在post的text编辑模式使用相应chart的代码。 直接使用插件:这个我没有尝试。 方法3主要经验和感受 把方法2中的地图代码按着方法3的格式复制粘贴后也无法使用,发现如果<script>前有空格的话要把空格删掉,且要删除js部分的所有空行。 无法使用数据地图的Marker格式。以下例子就是从方法2中复制修改的,本来是Marker格式的,无法正常使用,删除displayMode: ‘markers’后获得图中的效果,但是波兰不知道因为什么原因没有显示(神奇)。 最小显示单位为国家。方法2的教程中有显示意大利城市的例子,不过我试了好久也没法正常使用(也可能我还没掌握要领)。

Continue Reading

Technic

Ubuntu上安装python3.6以及设置为系统默认

这篇文章记录了如何在Ubuntu上安装python3.6以及将其设置为系统默认。   查看Ubuntu版本 由于python3.6在不同的Ubuntu版本中的安装是不一样的,这里我们先来看一下的Ubuntu的版本,在terminal中输入lsb_release -a即可查看,例如我的Ubuntu版本为16.04.4.   不同Ubuntu版本上的python3.6的安装 文末的参考资料[1]中的高赞回答列举了python3.6在不同版本的Ubuntu上的安装,这里摘抄如下: Ubuntu 14.04 and 16.04 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.6 或者 sudo add-apt-repository ppa:jonathonf/python-3.6 sudo apt-get update sudo apt-get install python3.6 安装完成后使用python3.6命令运行 Ubuntu 16.10 and 17.04 sudo apt-get update sudo apt-get install python3.6 安装完成后使用python3.6命令运行 Ubuntu 17.10 在Ubuntu17.10中已经默认使用python3.6,所以可以直接用python3运行   设置python3.6为系统默认 安装好python3.6之后,我的系统中有python2.7,python3.5和python3.6三个版本的python。为了避免每次使用python3.6命令,希望把python3.6设置为系统默认。在设置之前,我们首先来看一个系统中python命令,python3命令以及不同版本python的路径,之后的操作中我们也需要其中的部分路径:   设置python命令默认使用python3.6 sudo […]

Continue Reading

Technic

GitLab添加公钥后仍然需要输入密码的解决

背景信息 现在在Cluster上和实验室的GPU上分别跑实验,由于代码管理的问题,把cluster上的代码设置为项目的一个分支,比如叫做Project_Cluster。设想的架构如下: 本地Windows PC 通过PyCharm写代码并调用实验室Server的GPU 修改代码并用Git上传到实验室server 必要时把cluster分支的代码合并进来 实验室Server 跑实验 同时也是GitLab的server 楼下Cluster 通过Putty和SCP登陆 修改项目的Project_Cluster分支并上传到实验室server   解决方法 我在Cluster上生成了密钥并把公钥添加到GitLab账户之后依然每次pull时需要输入密码,看了网上有很多帖子在讲这个问题,解决的方法也五花八门,但是最终下边这个方法帮我成功解决了。 主要原因: 需要进行git config设置。 解决方法: 设置git config并保存你的GitLab用户名、邮箱及密码 git config –global user.name “your user name” git config –global user.email “your email” 验证成功后需要输入GitLab的密码(这就是需要解决的问题)。 我们先输入正确的密码, 接下来可以临时缓存密码: git config –global credential.helper cache 或者一直保存密码(我用的下边这个): git config credential.helper store 之后再pull就没有管我要密码了:     其他可能原因及解决 IP地址不在同一个网段 服务器端权限设置 生成密钥时设置了密码   补充一下怎么生成和添加密钥 terminal里输入 […]

Continue Reading

Technic

使用Sphinx生成python代码文档

(English version here)   今天开始使用Sphinx生成python文档。我以前用Doxygen给C代码生成文档,所以这次特意花了点时间比较Sphinx和Doxygen。读了这篇文章之后我决定使用Sphinx Comparison of Python documentation generators。 Sphinx是生成python文档最受欢迎的工具,甚至Python 3 的官方文档也是用Sphinx生成的。在本文中我将和你分享怎么使用Sphinx。 安装 你可以在这里找到sphinx在不同平台的安装方法,我只简单介绍几个比较常用的:   Debian/Ubuntu Python2 $ apt-get install python-sphinx Python3 $ apt-get install python3-sphinx   用pip安装 可以用于Linux, MacOS以及windows pip install -U sphinx   用Git安装 可以用于Linux, MacOS以及windows $ git clone https://github.com/sphinx-doc/sphinx $ cd sphinx $ pip install .   设置和使用 启动sphinx 安装好Sphinx以后你可以在你的代码所在文件夹启动命令窗口并用以下命令启动sphinx: sphinx-quickstart 比如,这里我在名叫Python的文件夹里使用该命令。文件夹中有一个python的测试代码文件。   设置 […]

Continue Reading

Technic

Windows与虚拟机VirtualBox中的Ubuntu共享文件和文件夹

最近因为实验需要,重新启用了好久不用的Virtual Machine,做好基本的设置之后觉得有必要实现windows系统与VirtualBox中的Ubuntu系统的文件共享。尝试了网上说的很多方法都一直报错,最后终于在合并了几个方法的不同步骤之后实现了,现在总结和分享一下。   Windows端 Windows端需要建立一个用来进行文件分享的文件夹,比如我在D盘建了一个ShareWithVM文件夹。在这个文件夹的图标上用鼠标右键单击,然后选择属性–>分享,然后选择“高级分享(Advanced Sharing)”并勾选“分享这个文件夹”,然后单击“确定”即可。   Linux端 设置的重点在linux端,也就是虚拟机上的Ubuntu上,网上有很多教程,可是我使用后并不成功,以下是我的设置过程。 设置VirtualBox中虚拟系统的共享信息 在VirtualBox Manager界面中选择需要设置的Ubuntu虚拟系统,然后按下图的顺序添加刚才在Windows端建立的共享文件夹的信息。这一步可能需要先关闭虚拟机再设置,我不太记得我设置的时候虚拟机是关闭还是运行状态了。   在Terminal中下载所需镜像并安装 这一步可以用参考链接[1]中的方式在windows系统下载然后再虚拟机选择相应镜像,不过我是通过以下的代码实现的。 首先运行Ubuntu并打开一个terminal,然后输入以下代码: sudo apt-get install virtualbox-guest-additions-iso 接下来在图形界面里的以下位置找到这个映像,并用鼠标右键单击,选择Open With Disk Image Mounter,它就会自动安装了,直到安装成功后按enter键退出。 /usr/share/virtualbox/VBoxGuestAdditions.iso   挂载共享文件夹 (2018.06.28补充:以下命令使用了sudo调用了root权限。由于Ubuntu图形界面的时候默认是没有root权限的,在使用图形界面浏览时候可能是出现没有权限浏览共享文件夹的情况。因此我建议做这步的时候不要使用sudo,即:直接mount XXXX。然后你可以进入到共享文件夹中,即下文的/mnt/shared中,在Ubuntu最上方选择“书签-添加书签”,就可以将此文件夹固定到侧边栏便于浏览了。顺便补充一下,如果想给Ubuntu的图形界面赋予root权限,可以使用命令sudo nautilus) 在Ubuntu的Terminal里输入如下命令: sudo mkdir /mnt/shared sudo mount -t vboxsf shareFolder /mnt/shared 或者不加sudo mount -t vboxsf shareFolder /mnt/shared shareFolder是windows中要共享的文件夹的名字,由于我第一步在windows创建的分享文件夹角ShareWithVM,所以我在我这输入的代码实际为: sudo mount -t vboxsf ShareWithVM /mnt/shared 或者不加sudo […]

Continue Reading