博文

CharlesTermux发布,谈谈命令行神器Termux

最近我的平板被我重置了,发现重新安装好多包好麻烦,所以弄了一个和 CharlesScripts 一样的东西,区别在于这里面功能减少了一些,所以可以写安装脚本了。里面做了一个一键安装脚本,直接一键用上我的配置。 网址在这里: https://github.com/the0demiurge/CharlesTermux Termux简介 Termux有点像一种Linux发行版(当然不是),使用apt作为包管理器,只支持很有限(却很够用)的部分软件,支持ssh(或者作为ssh服务器),可以用python写代码(虽然好多库都装不上),可以写c语言(有clang编译器和gcc,当然gcc要费点力气才装的上),甚至texlive和graphviz都有。 如果出差的话,可以用安卓平板做紧急开发了,配上realvnc,加上罗技的k380蓝牙键盘,能作为超级本的廉价替代品了。 题外话,上个学期我跨校区上课的时候,用它写论文,很给力。 部署方法 运行命令: apt update;apt install -y curl;bash -c "$(curl -fsSL https://git.io/vdUkk)" 功能 自动解决powerline字体等问题,安装fish,omf,tmux,ipython并配置主题,添加源,可以用apt装scipy,numpy,octave等。 可以自动备份安装列表,fork本项目之后可以将你自己维护的列表上传到自己的github。 关于快捷键 我常用的是以下几个功能: 音量键+和Q一块按,会出现一条常用按键。  把这个黑条向左滑,会出现一个输入框,便于粘贴和编辑。 把屏幕向左/向右滑动可以切换终端

[已失效] OpenShift v3 如何自定义域名

图片
经过好几天的探索找到了问题的解决办法,例子请看我的网站 ss.pythonic.life 用一句话来说,就是在 OpenShift 的后台增加一条路由,指向你的域名。 具体步骤: 在选择网页界面登陆之后 Open Web Console,选择你的项目 在左侧选择 Applications,选择 Routes 3. 选择右上角的 Create Route,把 Hostname 改成你想用的域名就可以了 4. 在你的域名提供商设置好 CNAME 记录,其中目标为 OpenShift 默认的域名 如果我的回答帮到了你,不妨 Star/Fork/Code Review 一下 这个我放在 OpenShift 上的小网站项目

深度学习服务器使用指南(三):如何让终端里面的任务一直运行

简介: 如果你用ssh连到远程服务器跑任务,如果连接断开或者本地电脑关机,那这个任务进程是会被kill掉的。为了避免这种问题,我将在这里介绍3个方法。 1. ssh 在上一篇指南里提了一下,用ssh的T参数: ssh user@host -T "command" 可以提交一个命令之后断开连接,在服务器开一个进程一直跑任务,用起来当然不是很方便,而且有的软件也不支持这么提交,但是不需要配置或者安装特殊的软件。 2. vnc 在第一篇指南中配置好 vnc 之后,可以在 vnc 里面进行各种操作,事后断开 vnc 的连接也没关系。当然,当 vnc 服务器关闭的时候,之前打开的所有软件包括任务都会被 kill 。 3. tmux 当你只想用ssh连接服务器,可以使用 tmux 进行操作。 tmux 可以随意断开连接,再重新连回去,类似于 vnc 吧,优点在于只需要终端操作。     操作指南: 启动tmux:$tmux 断开连接:Ctrl+b, 按完组合键之后按d 重新连接:首先,输入 tmux ls 查看已经打开的会话;找到想要连接的会话之后输入 tmux attach -t <会话名称> 就连回去了。其中,第一个会话的会话名称为 “0”, 那么直接 tmux attach -t 0 就能连接回来第一个会话,其他的以此类推。

Cross-Entropy Method (CEM, 交叉熵方法) 与强化学习

前言 之前阅读 Deep Reinforcement Learning: Pong from Pixels 的时候 , 作者在文中最后提到“ One should always try a BB gun before reaching for the Bazooka. In the case of Reinforcement Learning for example, one strong baseline that should always be tried first is the  cross-entropy method (CEM) , a simple stochastic hill-climbing “guess and check” approach inspired loosely by evolution. ” (如果你做强化学习,就应该先用最原始的方法即CEM先测试一下,当然试验结果也可以充当benchmark进行对比。) 由于(居然)没找到相关的中文资料,我就来简要介绍一下吧。 简介 交叉熵方法是一种蒙特卡洛方法,主要用来优化和重要性采样。和进化算法类似,在空间中按照某种规则撒点,获得每个点的误差,再根据这些误差信息决定下一轮撒点的规则。交叉熵方法之所以叫这个名字,是因为该方法(从理论上来说)目标是最小化随机撒点得到的数据分布与数据实际分布的交叉熵(等价于最小化 KL 距离),尽量使采样分布(撒的点)与实际情况同分布。 该方法适当选取撒点规则就可以适应多目标优化等情况,在组合优化中也有许多应用。本文主要讨论 CEM 在强化学习的策略优化中的应用。 CEM 流程 简介说得花里胡哨,可是实际应用起来基本没有交叉熵什么事,实际应用通常是以下步骤: 首先,建模,将问题的解参数化。比如强化学习中,假设状态 S 为一个 n 维向量,动作总共有 2 种,最简单的想法就是建立一个 n 维参数向量 W ,求 S T   $\times$ W 得到一个标量 Q ,当 Q > 0 则采取第一种动作,否则采取第二种。强化学习问题转化为优化问题。(接下来其实可以使用任何优化算法求解最优的 W ,只不过交叉熵方法可以很快很稳定地收敛。) 假设参数 W 属于高斯分布,随机设置一个 n 维向量 $\mu...

关于为什么Q-Learning与DQN有效

图片
前言: 我之前看了不少Q-Learning的介绍和deep mind的两篇论文:play atari with deep reinforcement learning与human control through deep reinforcement learning,后来复习的时候思考了很久为什么DQN会有效,按照 a painless q learning tutorial 里面的例子写了一个 Q-Learning的代码 和 Q-Learning笔记 ,想明白了原因。如果理解有误欢迎指正。 本文假设读者明白q-learning和DQN,如果不够明白请参考上面提到的三篇资料和我写的笔记 Q-Learning: Q-Learning是通过迭代来更新Q表的,在更新Q值时,采取ϵ-greedy实际上就是以ϵ的概率进行贪心,$1-\epsilon$的概率进行蒙特卡罗。Q表按照下面的公式进行更新: 从公式中可以看出,当前位置的Q值(价值)等于当前位置的瞬时回报+在当前位置采取所有动作之后的最大Q值(价值)。 以a painless q learning tutorial中的例子为例,如下图所示(左图为地图,右图中的数字表示回报$R(state, action)$: 使用这个地图定义Q表和R(回报)表: 当我们的目标为5时,我们定义到达5的回报为100,经过第一轮迭代之后,Q表中$$[1,5]、[4,5]、[5,5]$$的Q值就是$$R(any state, 5) + \gamma \times Max[Q(next state, all actions)]=100+\gamma  \times 0=100$$,其他"[状态,动作]对"的Q值为0.而重点在于之后的迭代,当遇到第二轮迭代的时候,$$[3,1]、[3,4]、[0,4]$$的Q值由0变为$$0+\gamma \times100$$,实际上Q值在不断地向所有可行初始位置反向扩散,由于$\times<1$,而距离目的地越近,Q值也就越大。也就是说,选择Q值最大的路径就是最优路线。 观看Q表的扩散,可以运行我写的小程序,使用jupyter notebook运行。 地址在 这里 ,也可以通过网页直接观察在我电脑...

如何在终端(apt)使用ShadowSocks代理--tsocks简介及教程

2019年6月12日更新:不再建议使用tsocks,建议使用proxychains-ng 有的时候安装Google的包,还是会连接失败,而apt本身不支持socks代理。近期hosts不给力,所以还是要靠ShadowSocks。这里简要介绍一下tsocks。 安装方法: 用apt就能装 配置方法: 编辑/etc/tsocks.conf 如果没有以下信息,则加入: local = 127.0.0.0/255.0.0.0 server = 127.0.0.1 server_type = 5 server_port = 1080 其中,第一行指定不走代理的ip',我们指定凡是127开头的都不走代理。server_type官方要求为5才能用,剩下俩看名字就知道是干啥的,采取默认即可。 使用方法: tsocks command 测试: tsocks curl ip.cn tsocks curl google.com 使用apt: sudo tsocks apt update 注意:经过尝试发现sudo要放在tsocks前面,否则apt会走不了代理。 可以试试我写的 apt bash小脚本 ,把它放到/usr/local/bin并加入可执行权限就可以运行。

免费ShadowSocks帐号分享网页

之前在 这里 写的一个小爬虫,我把它做成了网页,放在了openshift-v3上面,这样就不用自己部署了。 点击这个链接查看: ss . pythonic . life 如果你想部署到自己的服务器或openshift帐号上,可以 点击这里 查看源码和部署指南。 如果用起来觉得不错,不妨给我加个星呗~ 这里可以直接看我的网页:

此博客中的热门博文

最方便的电子词典库+macOS支持

MacBook日文键盘四种输入模式输入法切换(同样适用于其他布局的键盘)

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