PyTorch 中原版的 DataLoader,如果使用多进程加速数据读取,那么它在每个 Epoch 结束后都会销毁、重建所有 Workers。当一个 Epoch 的迭代时间较短、但迭代次数较多时,训练会比较费时。本文提出了一个解决方案,在原版 DataLoader 的基础上封装了 FastDataLoader,解决上述问题。

阅读全文 »

原文地址:https://mp.weixin.qq.com/s/cwdFyZMeV91ncfmS8huSdQ

最近在开发项目的一个小需求的时候,发生了一件尴尬的事情。那就是当我把新功能开发完成的时候,忽然发现自己开发使用的分支是错误的分支。

不过我记得之前学习git的时候有一个git stash的命令可以把当前没有提交的内容存档起来,然后可以在切换分支之后把当前的存档应用到目标分支。花了十几分钟,把git stash相关的命令又再次温习了一下,接着就顺利地把这个问题给解决掉。因为平时的开发也都是遵循相关的git流程,一般不会出现什么错误,而且平时使用的git命令也都是一些常用的。

其实当你在错误的分支开发了新功能之后,这里会有三种情况:

  • 新功能还没有在本地进行 commit(提交),也就是我这次遇到的情况
  • 新功能已经在本地提交了,但是还没有 push 到远程仓库
  • 新功能已经在本地提交了,且 push 到了远程仓库

虽然我遇到的是第一种情况,那么当我解决这个问题之后,我很自然的就会想: 如果遇到了另外两种情况我该怎么处理呢? 这篇文章就跟大家一起探讨一下针对上述三种情况下,如果你在错误的分支开发了新功能,我们应该怎么做。

阅读全文 »

为了对机器性能有一个详细的了解,我们通常会进行“跑分”。本文介绍了如何在 Linux 环境下,对硬件性能进行测试。其中,CPU 性能使用 GeekBench 工具衡量;磁盘 IO 性能使用 FIO 工具衡量。

阅读全文 »

Flask 是一个使用 Python 语言编写的 Web 框架,它可以让你高效的编写 Web 程序。本文介绍如何使用 Flask 搭建一个简单的网页,用户可以在该网页中通过 form 提交 POST 请求给服务器进行处理。

阅读全文 »

Webscoket 是客户端和服务器之间的一种全双工通信协议。一旦客户端与服务器建立起连接,之后的全部数据通信都通过这个连接进行。通信过程中,可互相发送 JSON、XML、HTML 或 Image 等任意格式的数据。

本文介绍了如何在 Python 中搭建一个 Websocket 服务器和对应的客户端,并实现一个简单的功能:客户端发送一串图片给服务器,服务器在处理完成之后发送结果给客户端。

阅读全文 »

有时候我们希望让一个服务端程序常驻后台,比如 FRP(反向代理)。传统方法是通过在命令后面追加 & 字符,将其后台运行。不过这样操作繁琐,想要开机自启的话,还要把命令加到 /etc/rc.local 里去,太麻烦。本文以 FRP 为例,介绍了一种新型方法,将这种程序作为服务运行,直接用 sudo service xxxx start/restart/stop 控制启停,非常方便。

阅读全文 »