0%

  在定义好数据集后,PyTorch提供了一个DataLoader类作为数据集的迭代器,该类位于torch.utils.data模块中,我们仅需要在其构造函数中传入指定的数据集,即可直接使用for语句使用。除此之外,构造函数还可以接收一些实用的参数:

  • batch_size:指定每一轮迭代载入的数据数量(默认值:1)
  • shuffle:是否随机打乱顺序(默认值:否)
  • num_workers:指定用于载入数据的子线程数(默认值:0)
阅读全文 »

  利用PyTorch进行深度学习时,首先要做的就是自定义一个数据集类,用于告诉PyTorch如何加载数据集。继承torch.utils.data.Dataset抽象类后,重写两个方法,即可完成自定义数据集的创建:

  • __len__(self):用于返回数据集的长度
  • __getitem__(self, index):用于返回第i个数据,传入一个index参数,表示索引
阅读全文 »

  TLS 1.3协议已于2018年8月正式发表,原计划在CentOS 8发布以后,一并部署支持,但无奈呉真的VPS是基于Xen的版半虚拟化技术,暂时无法提供CentOS 8的模板。于是在CentOS7的基础上,重新编译Nginx,以支持TLS 1.3。

阅读全文 »

  有时候我们可能会需要自行编译RPM包,关于如何编译RPM包,可以查看呉真的这篇博文,当有了RPM包后,我们可能会需要分发到多台服务器上去,如果采用手工传输的方法,不免有些麻烦。这时可以自行搭建一个RPM仓库,使用yum/dnf一键安装自行编译的RPM包。

阅读全文 »

  CentOS最容易被人诟病的一个问题便是软件包过于陈旧,经常无法使用某些实用的新特性,当然这也是为了稳定而做的考虑。为了使用某些新特性,有时候我们不得不重新编译新版本的软件以使用,而当你需要在多台服务器上重新部署时,这就显得非常麻烦。一个好的办法便是自行构建一个RPM包,然后通过RPM仓库的形式分发,如此每台服务器便可使用基于RPM的包管理软件yum/dnf,安装管理新版本软件包。

阅读全文 »

  Brotli是Google推出的一个新型压缩算法,与传统的gzip相比可以大幅提高压缩率,目前各大浏览器Chrome/Firefox/Opera均已支持Brotli算法。但是目前Nginx官方并没有默认集成Brotli算法,还需要手工编译以开启Nginx对Brotli算法的支持。呉真经过寻找后,发现Nginx Plus以及GetPageSpeed Service提供了预编译好的Brotli动态模块,但是这两者都是需要收费的商业服务。

阅读全文 »

  由于拒绝中共的内容审查,Google在2010年退出中国市场后,中文的搜索引擎一直处于无人维护状态,这使得一大批垃圾采集站,以及百度知道之类的高权重垃圾站,经常占据搜索结果前列的结果。呉真无意中发现了一款Chrome插件——uBlacklist,可以完美的解决这个问题,这里是Chrome应用商店直达链接

阅读全文 »

  Nginx的ngx_http_sub_module模块可以很方便的实现:在返回资源时动态替换某些关键字。但是这个模块默认并没有启用,在编译时需要手动添加--with-http_sub_module编译参数。要查看当前Nginx是否集成该模块,可以使用如下命令:

1
nginx -V 2>&1 | grep -q http_sub_module && echo "ok"
阅读全文 »

  Gitalk是基于Github issue的评论系统,每一篇文章对应一个issue,博主可以通过管理issue方便的控制评论。但是对于刚创建的新站或者刚改版的站点使用Gitalk很容易造成SEO的问题,由于Github网站的权重很高,而每一个issue的标题默认是跟文章标题相同的,且有一个链接指向文章,因此如果设置不当很容易导致Google认为非法引流导致K站。

阅读全文 »