博文

精选博文

TensorForce: (可能是)最好用的强化学习库

前言: 实现好用的强化学习算法不容易,这之间需要踩许多坑。工业界使用强化学习的话可以考虑使用这个现成的库,基于宽松的 Apache-2.0 协议;学术界也可以将其作为 baseline 。我自己实现过一些算法,如果对论文理解的不正确,或代码里有小疏漏,查错和调试是一件非常难的事情。有的时候做项目移植别人的代码会降低许多风险。 优点: 1. 把有名的主流算法全都实现了,共十几种算法,算法效果在这里。 2. API 设计非常方便,非常值得借鉴,这也是为什么我没有推荐 OpenAI 的 baselines 3. TensorFlow 实现的 A3C 有两种可选选项:基于多线程的和基于分布式的,可以合理避免掉 Python 的GIL 4, 用了 TensorBoard 做可视化,会很好用 5, 代码结构比较清晰,静下心来慢慢看可以作为不错的教学代码
6. 可以快速应用自己设计的强化学习环境,只需要继承自Environment类并实现相关方法即可,把自己设计的环境包装一下工作量非常小 缺点: 1. 用的 TensorFlow,而不是PyTorch,如果单机多 CPU 并行依赖分布式,并不是个好思路,而且显存使用会很不合理,也会更麻烦,比 PyTorch 的 multiprocessing 麻烦多了,这也是为什么我切换到了 PyTorch
2. 包装的层数实在太多了,源码阅读起来时间成本很高,毕竟用的是 TF。竟然把 TF用成了PyTorch 风格 结论: 1. 工业界使用的话问题不大 2. 科研完全可以基于这个框架写新的强化学习算法,或只用它作为 baselines 3. 用它学习强化学习也不错 4. 学学它的 API 设计会很好,现有的开源强化学习代码通常写得都很乱 5, 我用 PyTorch 链接:TensorForce: A TensorFlow library for applied reinforcement learning

在Blogger上书写LaTeX公式

坑:如果你在后台设置的主题背景中编辑HTML,出现下面这个错误:
The widget settings in widget with id <b>AdSense1</b> is not valid. An internal error occurred. Please try again.我在网上发现有不少人都遇到过,而且没有太好的解决办法。所以我就用比较暴力的方法:
直接定位到这个插件的位置,把AdSense的两个插件相关的几行代码删掉。教程:1. 复制下面的内容 2. 在后台设置$\rightarrow$主题背景$\rightarrow$编辑HTML,把这些内容粘贴到head标签内
示例:$\LaTeX$
$\sum \limits_{i=0}^n(\gamma \times Q(s|a))$

使用Ubuntu创建Windows安装盘(懒人法)

前言: 以前用过一个软件可以在Linux下创建Windows安装盘的,因为极少用Windows所以忘记是哪个软件了。今天突然有装Windows的任务,在网上找了半天都没找到,后来心想不能偷懒全都找中文教程,换成英文关键词“windows bootable usb from iso on linux”,结果第一个搜索结果就解决了问题。从这次事故中收获了两个教训: 有收获就赶紧记下来,好脑子不如烂笔头偷懒有时反而要付出更多辛苦 正文: 1. 安装 winusb (现在叫 woeusb ) sudo apt install woeusb 2. 打开 woeusb (在Application菜单里面)
3. 插上U盘
4. 这一步有点坑,需要手动卸载U盘,不然没法把Windows写入U盘
sudo umount /media/xxx/xxxxxx 5. 然后在woeusb界面里面点refresh然后随便点点点就ok
评价: 比用老毛桃方便多了

最好的电子笔记本:GitBook+Typora

前言: 作为爱折腾的Linux 用户,有了做笔记的需求,免不了多方调查。我自己对于笔记本的基本需求包括如下: 安全性:笔记本一定要托管在云端,而这个云端一定要足够可靠免费,不用多说便于迁移:我有一天找到更好的笔记本不需要很复杂的劳动就能迁移所有笔记方便:最好支持Markdown,不需要复杂的部署富文本:肯定要支持图片、超链接、代码片(语法高亮),最好能支持LaTeX多平台支持:Linux、Mac、Windows、Android、iOS、网页最好都能支持 常见笔记本的比较(收费产品不考虑): OneNote:可迁移性差不支持markdown 和LaTeX多平台支持最好(网页版做的非常好) 蚂蚁笔记: 免费与方便不可兼得(免费的话就需要在服务器上自行部署)多平台支持最好(与OneNote相同)支持markdown、LaTeX GitBook: 安全性:基于git,不用多说了吧,可以分布式备份,托管GitHub 一份;多个设备都可以本地各保存一份;可以同时保存到其他代码托管网站,比如bit bucket、gitlab 等桌面端的多平台支持:三大主流桌面操作系统均有git book 官方出品的编辑器;GitHub 也有桌面客户端,网页版git book 编辑器也不错。不过移动端略显尴尬,安卓上虽然有pocket git 和Easymark 分别起到了git 和markdown 的功能,却十分不方便,所以安卓还是首选OneNote 处理复杂笔记任务。网页端的GitHub 编辑器操作体验不佳,因为文件树(在git book 中为目录)并不能很好地显示,创建删除文件非常繁琐。方便迁移(可以与GitHub 仓库关联,本来就是一堆markdown文件,迁移到类似于GitHub pages 的博客也不会麻烦)富文本支持:插件繁多,可以轻松嵌入LaTeX、graphviz、plant UML,数学、数据结构、软件工程等的福音与GitHub 结合,比如jupyter notebook 显示不出来的,可以直接链接到GitHub 去显示(jupyter notebook 本身也可以导出为markdown)导出为PDF/mobi/epub:杀手级应用,本来就是电子书制作工具,把自己的笔记保存为电子书离线观看、分享,随时阅读,是一件非常惬意的事情 使用方法: 配合typora进行markdown 写…

Shell alias的有趣用法

我有多个工作目录而且切换起来很麻烦的时候,想找一个命令行的工作目录管理器,可以输入很少几个字符就能顺利切换到相应工作目录,而这时突然想起来其实shell里面的alias就可以实现此功能。以fish-shell的abbr为例:
abbr prj '~/Workspace/Lang/Long/Path/To/Your/Project; ls' 然后输入prj就可以直接跳转到该项目了,多个项目也同理。
想删掉这个abbr,就用
abbr  -e prj 即可。

我在网上搜索的时候顺便找到了一个和我想法类似的文章,分享给大家
10 个实用的 Bash alias

使用Python发邮件(顺便写了一个小工具以方便实验室服务器运维)

前言: 命令行方式发邮件是非常重要的一个功能,搞过服务器运维的同学们肯定深有感触。如果一台服务器的 ip 设置为自动分配,服务器每次重启都会改变 ip ,经常去机房查ip是一件非常抓狂的事情。我今天参考了一些资料学习了一下 sendmail ,写了个小脚本,支持发送图片/附件/html等,可以用来发送日志等。
源代码在这里: https://github.com/the0demiurge/Notes/blob/master/Languages/Python/sendmail/sendmail.py
我基于这个函数做了一个自动获取IP(ifconfig)和服务器日志(dmesg)的小脚本,在这里: https://github.com/the0demiurge/Notes/blob/master/Linux/Server_Maintenance/sendmail.py
大致的用法: 只需要构造三个字典变量: sender: 记录发送者的信息,包括smtp服务器地址(比如qq,163什么的一般都会提供,不过需要在设置里面开启smtp才行)receivers: 记录收邮件的人的信息,可以指定多个邮件接收者mail: 定义邮件的内容,包括附件等信息。 配置示例: sender = {'address': 'sender@domain.tld','nickname': 'My Name','password': 'password','smtp_server': 'smtp.domain.tld','smtp_port': 465, } receivers = [('Your Name', 'receiver@domain.tld')]

[SOLVED] Supermicro cannot connect to VGA video port or iKVM

图片
Error Message: iKVM doesn't support add-on VGA device.  Please change the D-SUB connector to Add-on VGA device…
TL;DR:Go HERE and download Supermicro IPMI Utilities and install on your own PCConnect your server to the network (NOTICE: YOU MAY HAVE MORE THAN ONE NETWORK PORT, AND IF YOU DO NOT KNOW WHICH PORT SHOULD CONNECT TO THE NET, CONNECT THOSE ALL), power on and press "DEL" during startup until that error message come outThere will be an IP showing on screen, keep it in your mindGo to your own PC, enter that IP on your web browser, if  you see a webpage below, go to next You may log in and change default username and password. The default username and password are both "ADMIN" Run IPMIView (downloaded at STEP 1). If you are using Windows, it's easy, and go to next step. In my PC (Ubuntu), you can just type:
    tar xvaf IPMIView_2.13.0_build.170504_bundleJRE_Linux_x64.tar.xz
    cd IPMIView_2.13.0_build.170504_bundleJRE_Linux_x64
    ./IPMView20 Click &q…

此博客中的热门博文

免费爬墙网站项目(ShadowSocksShare)开发简记

Ubuntu Gnome 酷炫完整指南(一):小工具篇