mac shell 毫秒时间戳_4个Shell小技巧,帮你提高机器学习生产效率

800c2926ef4387e813ba476f5942c1bd.png
晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

在机器学习的实践过程中,用好Shell能帮你很多节省时间。

最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高了工作效率。

5fd583c62edbb11f3401ac12cdfda5da.png

下面就是他分享的4个tips。由于本文中涉及到的shell脚本过多,你可以去文末地址中查看所有脚本的源代码。

抓取远程文件

当你在远程服务器上监视程序运行时,如果想把一个远程文件抓取到本地查看,通常你会怎么做?

记下文件路径,打开终端,用rsync之类的工具同步到本地,再到文件浏览器中查看。

实际上不必这么麻烦。只需要事先写好几个shell脚本,就可以避免重复的机械劳动。

在这里强烈推荐iTerm 2,它比Mac自带的终端要强大得多,可以指定某个触发关键词执行某个相应的命令。

36e6badf545278e27a724a686062d342.png

iTerm 2下载地址:

iTerm2 - macOS Terminal Replacement​www.iterm2.com

先在远程服务器上设置一个脚本t。当我们输入r awesome_video.mp4时,它会搜索awesome_video.mp4文件所在路径,并连同主机名以字符串rtransfer <host> <path>的形式打印出来。

3601c7ac30f57a6424ede10c03caae51.gif

rtransfer作为iTerm2的触发关键词,解析出主机和路径,然后调用另一个本地脚本t2。脚本t2将这个视频文件传输到临时目录,然后在该目录中打开Finder。

d5d3f45a91b0fd5fc298da4e9b3c9d33.png

使用iTerm 2触发关键词功能调用脚本,可以大大提升效率,而你要做的只是在前期花费时间定制脚本。

远程访问TensorBoard

除了抓取远程文件,另一个让人痛苦的是访问远程服务器上的TensorBoard实例。你可以设置SSH端口转发,但是哪个端口对应哪个服务器?它们都在Docker容器中。

ngrok可以让你把访问本地端口变成访问URL,比如输入ngrok http 6006后,它会为你生成一个URL网址http://683acac3.ngrok.io,你可以在这个地址中查看TensorBoard实例。

结合脚本n,以更快的速度启动ngrok,然后用脚本tb打开Web浏览器,启动TensorBoard,在十秒内就能从运行目录转到显示图形。

800bc0aa9e6db1ad9e1d49e4cbd18f3a.gif

ngrok有个缺点是它一次只能允许一个会话,因此在使用前需要杀死上一个ngork进程。如果你忘记在另外一台服务器上杀死ngrok,可能会比较麻烦。

ngrok下载地址:

secure introspectable tunnels to localhost​ngrok.com
169a31baed4320cd415f85fa5076a9d8.png

用tbplot代替TensorBoard绘图

对于运行大量metrics的情形,我们需要等待较长时间让TensorBoard加载所有图形。如果使用tbplot脚本,速度会快很多,并且能直接生成图像文件。

d3931f22c8d109628ddf23bd86a6c288.png

tbplot实际上调用的是Matplotlib,缺点是目前只能生成标量图。

tbplot下载地址:

mrahtz/tbplot​github.com
052d6136a1b2ac0717ba4610cac57c4c.png

自动化崩溃监测

运行代码时,最耗费精力的事情就是是担心遇到了错误并崩溃,因此需要不断检查他们的运行情况。

当程序出现问题时,通过警报自动监控可以缓解这种担忧。一般可以把警报发送到邮箱中,为了避免这么麻烦,可以使用sqs-alerts,它依靠AWS AWS Simple Queue服务存储和接收消息。

在每台远程机器上,使用cron运行一个脚本,监控日志并在检测到运行中断时向队列发送消息。然后在本地机器上运行一个服务来监控队列,并在收到消息时弹出警报。

4e1ca80eedc2b19811b4301419a82966.gif

sqs-alerts下载地址:

mrahtz/sqs-alerts​github.com
052d6136a1b2ac0717ba4610cac57c4c.png

最后,本文使用的所有shell脚本都可以在以下地址中找到:

mrahtz/dotfiles​github.com
052d6136a1b2ac0717ba4610cac57c4c.png

量子位 · QbitAI

վ'ᴗ' ի 追踪AI技术和产品新动态

戳右上角「+关注」获取最新资讯↗↗

如果喜欢,请分享or点赞吧~比心❤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值