techkang

Thinking will not overcome fear but action will.

pytorch中单机多卡的训练方法

科学炼丹

介绍 本文介绍了PyTorch中单机多卡的训练方法。 背景 单机多卡基本上是调参侠最为常见的炼丹方式,但是当前关于如何进行单机多卡训练的介绍文档并不多,而且有些文档严重过时,例如PyTorch官网的一份文档的示例代码还停留在PyTorch0.3版本。 Naive方法 比较Naive的方法是只用DistributedDataParallel包住model,但在最新的PyTorch版本...

pytorch中dataloader的num_workers设置

炼丹

介绍 本文分析了pytorch中dataloader类里num_workers参数最合理的设置方法。 测试代码 from time import sleep from timeit import default_timer import matplotlib.pyplot as plt import numpy as np from torch.utils.data import D...

远程连接实验室服务器

学无止境

介绍 有时候需要远程使用服务器,尤其是在内网下的服务器,很多人采用 TeamViewer 的解决方案,然而 TeamViewer 网速一般比较慢,操作比较僵硬,因此向大家推荐使用远程 ssh 连接。远程 ssh 有多种实现方式,在此处使用 frp+vps 的方式。 准备阶段 购买一个国内的 vps。 Server端准备 此处的 Server 是指具有公网 IP 的 vps,而非实验...

collections 学习笔记

学无止境

介绍 今天在看一份代码时,该代码调用了 collections 模块中的 defaultdict 类,该类在访问字典里没有的对象时,会自动创建一个项,瞬间觉得想见恨晚,决定学习一下 collections 模块。 准备阶段 在谷歌上直接搜索 collections python,直接点击了第一个结果,但看了一会,发现这是 python2 里 collections 的教程…..于是跳转...

shadowsocks 工作原理分析

实践出真知

介绍 同学去美国暑研,到达美国后发现 MATLAB 许可证一天后过期,于是向我寻求帮助。我在 Windows 下用 pip 安装 ss 服务端后开启服务,并指导同学安装客户端,选择全局模式,之后果然成功更新,之前我已经知道 ss 采用了 Socks5 协议,不能代理命令行。于是趁这个机会我希望彻底搞清楚 ss 的工作机制。 简述 简单来说,Socks5 协议是运行在传输层的一个协议,网...

配置二级域名

网站看起来更高级了

介绍 配置了我的第一个二级域名。 实现过程 这是我在打算配置邮箱服务器的时候顺手实现的。首先去阿里云添加一条 A 记录,就是把二级域名仍然映射到我的 VPS 的 IP,不得不说付费服务就是好用啊。之前也申请过免费的 .top 域名,当时为了设置解析域名花费了好长时间,现在想起来应该是那个域名服务商不提供解析服务,要在设置中指定解析服务商之类的,好坑。 之后动手配置 nginx,主要步...

NEWS-网站迁移到https

所有到达 80 端口的请求都会被重定向至 443 端口

介绍 我的个人主页已经支持到 https。 实现过程 主要参考了 Linux大神博客 。使用免费开源的 Let’s Encrypt 产生证书。为下一步配置邮箱服务器打下坚实的基础。

VPS端口分析

说明我 VPS 上几个主要在执行监听端口的进程

介绍 分析一下我的 VPS 上监听端口的进程及其作用。 查看进程 使用命令:netstat -ap 可以看到,由我主动设定的程序及其对应的端口如下: 程序 端口 ssh 22 nginx 80,443 shado...

VPS 上搭建个人主页

听起来比 Git Pages 酷,这就行了

起源 我一直想配置一个自己的 VPS,当然主要目的是翻墙。看来看去,发现能用支付宝买的都很不划算,要么很容易被屏蔽,就办了一张信用卡,信用卡到手后,申请了谷歌免费的 VPS(资本主义,资本主义.jpg)。 主要步骤 之前已经用 Git Pages 搭建了个人主页,那么接下来的主要任务是: 1.clone 仓库到 VPS 2.安装 jekyll 3.安装 pip3, 并安装 flask...

向开源社区提交的第一份代码

algorithms algorithms是GitHub一个开源仓库,包含了多种 算法(用Python3实现)。 我的贡献 我在浏览该仓库的排序算法时,发现几乎所有代码都没有按照PEP8标准修正格式,有些地方代码风格不统一。 于是我fork了该仓库,进行修改并提交了pull request。在和仓库维护者进行讨论之后,他们接受了我的提交, 这是我第一次向开源社区提交自己的代码。 讨论...