macOS Sierra (10.12.3)利用aria2解决CUDA下载失败问题

macOS Sierra(10.12.3)上尝试下载 NvidiaCUDA,但是由于国内网络问题,导致使用浏览器下载的时候,不仅慢,而且还经常失败,基本上没办法下载成功。尝试使用迅雷的话,如果不是会员,貌似也没有太多的用处。另外一个比较麻烦的问题是, Nvidia下载服务器,随着下载时间的延长,会强制限制下载速度,导致越来越慢,到最后只有若干 KB的速度。
继续阅读macOS Sierra (10.12.3)利用aria2解决CUDA下载失败问题

Caffe用训练好的caffemodel来进行分类

caffe程序自带有一张小猫图片,存放路径为 caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的 caffemodel来对这张图片进行分类,那该怎么办呢? 如果不用这张小猫图片,换一张别的图片,又该怎么办呢?如果学会了小猫图片的分类,那么换成其它图片,程序实际上是一样的。

开发 caffe的贾大牛团队,利用 imagenet图片和 caffenet模型训练好了一个 caffemodel,供大家下载。要进行图片的分类,这个 caffemodel是最好不过的了。所以,不管是用 C++来进行分类,还是用 python接口来分类,我们都应该准备这样三个文件:

1. caffemodel文件

可以直接在浏览器里输入地址下载,也可以运行脚本文件下载。下载地址:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

文件名称为: bvlc_reference_caffenet.caffemodel,文件大小为230M左右,为了代码的统一,将这个 caffemodel文件下载到 caffe根目录下的 models/bvlc_reference_caffenet/文件夹下面。也可以运行脚本文件进行下载:

2. 均值文件
有了 caffemodel文件,就需要对应的均值文件,在测试阶段,需要把测试数据减去均值。这个文件我们用脚本来下载,在caffe根目录下执行:

执行并下载后,均值文件放在 data/ilsvrc12/ 文件夹里。

3. synset_words.txt文件

在调用脚本文件下载均值的时候,这个文件也一并下载好了。里面放的是1000个类的名称。

数据准备好了,我们就可以开始分类了,我们给大家提供两个版本的分类方法:

一. C++方法

caffe根目录下的 examples/cpp-classification/文件夹下面,有个 classification.cpp文件,就是用来分类的。当然编译后,放在 /build/examples/cpp_classification/下面

我们就直接运行命令:

命令很长,用了很多的\符号来换行。可以看出,从第二行开始就是参数,每行一个,共需要4个参数

运行成功后,输出 top-5结果:

即有0.3134的概率为tabby cat, 有0.2380的概率为tiger cat ......

二. python方法

python接口可以使用 jupyter notebook来进行可视化操作,因此推荐使用这种方法。

在这里我就不用可视化了,编写一个 py文件,命名为 py-classify.py

对于 macOS Sierra (10.12.3)来说,需要设置 python环境,(参考源代码中的 python/requirements.txt),如下:

执行这个文件,输出:

caffe开发团队实际上也编写了一个python版本的分类文件,路径为 python/classify.py

运行这个文件必需两个参数,一个输入图片文件,一个输出结果文件。而且运行必须在 python目录下。假设当前目录是 caffe根目录,则运行:

分类的结果保存为当前目录下的result.npy文件里面,是看不见的。而且这个文件有错误,运行的时候,会提示

的错误。因此,要使用这个文件,我们还得进行修改:

1.修改均值计算:

定位到

这一行,在下面加上一行:

则可以解决报错的问题。

2.修改文件,使得结果显示在命令行下:

定位到

这个地方,在后面加上几行,如下所示:

就样就可以了。运行不会报错,而且结果会显示在命令行下面。

参考链接


Caffe学习系列(20):用训练好的caffemodel来进行分类

如何正确隐藏WordPress的版本号?

默认情况下,当你使用 WordPress来搭建网站的时候, WordPress会在你的网站上留下个标记:这就是 WordPress的版本号。在某些时候,这个标记也会成为网站的安全漏洞。
打开你的 WordPress网站,在浏览中的空白地方点击右键,选择查看源代码,通常你会找到有这样一行代码:

这是 WordPress自动生成的代码,向外界宣告你所使用的 WordPress版本。如果你的网站一直使用的是最新版 WordPress,那你基本无需担心因为泄露版本号而导致的安全问题。但是,由于某些特殊的原因,如果你使用的是旧版本的软件,那么暴露 WordPress版本号可能会成为你网站的安全漏洞。

因此,在这种情况下,你应该隐藏网站所使用的 WordPress版本号。

在你的网站中,有四个地方容易暴露 WordPress的版本号:

  1. 网站源码页头部分的 meta标签里:
  2. 脚本和样式表文件中:
  3. 网站 RSS feeds中:
  4. 网站根目录下的 readme.html文件中。

网络中各种隐藏 WordPress版本号的技巧很多,功能最为完整且简洁的代码,应当是属于下面这段:

这段代码可以移除前面3个地方中所包含的 WP版本号。记得要把这段代码放在你所用主题(或子主题)的 funcitons.php模板文件中。

修改完成后,如果是使用 PHP-FPM来进行处理的服务器,需要重启 PHP-FPM服务否则代码可能不能及时生效:

对于上面第4点提到的,位于 WordPress根目录下的 readme.html文件,你直接删除该文件就可以了。这份文件是关于 WordPress的简单介绍和安装说明,安装好账户就没有什么用途了。

如果使用的是 Apache服务器,也可以简单的在根目录下面建立 .htaccess文件,里面增加如下内容:

当然,以上这些做法,隐藏了 WordPress的版本号,并不能真正解决网站中所存在的安全漏洞。确保网站安全的第一要素,还是要及时更新 WordPress核心软件,所使用的主题、插件;使用健壮的用户名和密码;不要使用来历不明的盗版主题和插件等。

引用链接


如何正确隐藏WordPress的版本号?

WordPress首页显示摘要(手工设置)

WordPress比较长的时间了,一直是在首页显示文章全文的,但是最近由于摘抄的某些文章中的图片非常多,导致每次加载首页会下载非常多的图片资源,整个页面加载速度都被拖慢了,于是想只在首页显示摘要,而不是全文显示。
网上搜索了一下,发现 WordPress早就有这个功能了,如下图:


如果想手工编辑 Html的话,只要简单的加入

标签就可以达到相同的效果了。

Mac自带的录屏工具

这个一般是指QuickTimePlayer,用这种方法对Mac屏幕录像,很多人会反应说“没有声音”,到底是怎么回事呢?让我们使用一遍就知道了。

  1. 右击Mac下排的QuickTimePlayer,选择“新建屏幕录制”
  2. 在弹出来的小窗口中,点击中间的红点,选择是否录制麦克风的声音和显示鼠标点
  3. 再点击小红点就可以开始录制了
  4. 可以按一下录制全屏,也可以拖动录制屏幕的一部分
  5. 点击选择录制区域中间的“开始录制”
  6. 屏幕中高亮部分就是正在录制的区域,点击电脑最上面的菜单上的“停止键”结束录制
  7. 在自动跳出来的视频中,就可以看到刚刚录制的内容
  8. 单击左上角的叉号,就可以选择是否储存刚刚录制的视频,以及编辑视频的名称和储存的位置

继续阅读Mac自带的录屏工具

Maven 打包时丢失".properties"文件

今天在打包项目 war文件的时候,突然发现居然每个 action包里面的 properties文件都没打进来,在网上看了半天终于找到解决方法。

问题: maven执行 package命令打包时, src/main/java路径下的 properties文件全部丢失。

继续阅读Maven 打包时丢失".properties"文件

macOS Sierra (10.12.3)编译Faiss

最近 Facebook AI实验室开源了相似性搜索库 Faiss
Faiss是用于有效的相似性搜索( similarity search)和稠密矢量聚类( clustering of dense vectors)的库。它包含了可在任何大小向量集合里进行搜索的算法,向量集合的大小甚至可达到 RAM容纳不下的地步。另外,它还包含了用于评估和参数调优的支持代码。 FaissC++编写,有 Python/numpy的完整包装。其中最有用的一些算法则在 GPU上实现。

下面,我们介绍一下如何在 macOS Sierra (10.12.3)上编译 Faiss

1.下载 Faiss源代码

2.安装编译需要的工具

3.修改调整源代码,准备编译

4.编译

5.执行测试用例

其余的示例,参考源代码中的 INSTALL文件中的内容即可。

在Ubuntu 14.04 系统Tomcat 7 部署Apache Archiva 2.2.1一段时间后提示"apache archiva Login for user admin failed, message: Account admin is locked"的解决方法

参照在Ubuntu 14.04 系统中的Apache Tomcat上部署Apache Archiva 2.2.1一段时间后提示:

解决方法为:
1.停止 Tomcat 7服务

2.移除 derby数据库

3.启动 Tomcat 7服务

如此操作完成后,就可以在界面上出现重新设置 admin用户密码的界面了。

默认情况下,每次重新设密码之后都是会在 90之后会过期,正常情况下,我们只能通过修改这个默认时间为很长时间来规避这种情况。

然后找到如下内容:

然后修改成:

接下来,需要重启 Tomcat 7服务:

注意,在新版本中,貌似这样设置是无效的,重启后观察配置文件,会发现,又被改回了90天。

如何卸载Ubuntu 14.04老旧无用的Linux内核文件

相信有很多朋友会问,我已经升级 Ubuntu 内核很多次了,但要如何卸载老旧无用的 Linux 内核文件来节省磁盘空间呢?本文我们就来介绍移除老旧 Ubuntu 内核文件的方法。

在 Ubuntu 环境中,我们有很多种方式可以升级内核。 Ubuntu 桌面版本可以在每天自动更新时升级内核,Ubuntu Server 可以使用 unattended-upgrade 自动更新的方式来升级内核,当然还可以使用 apt-get 或 aptitude 来同时兼容 Ubuntu 桌面或服务器版本。

随着使用时间的推移,被替换下来的老旧内核版本将会占用一定的磁盘空间而造成浪费。每个内核映像文件和相关的模块文件/header(头文件)会占用大约 200 – 400 M 的磁盘空间,如果频繁升级内核版本,老旧内核文件对空间的浪费将会迅速增加。

继续阅读如何卸载Ubuntu 14.04老旧无用的Linux内核文件

支持向量机通俗导论(理解SVM的三层境界)

作者:July 。致谢:pluskid、白石、JerryLead。
说明:本文最初写于2012年6月,而后不断反反复复修改&优化,修改次数达上百次,最后修改于2016年11月。
声明:本文于2012年便早已附上所有参考链接,并注明是篇“学习笔记”,且写明具体参考了pluskid等人的文章。文末2013年的PDF是为证。

前言

动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数学公式的时候还是显得不够。得益于同学白石的数学证明,我还是想尝试写一下,希望本文在兼顾通俗易懂的基础上,真真正正能足以成为一篇完整概括和介绍支持向量机的导论性的文章。

本文在写的过程中,参考了不少资料,包括《支持向量机导论》、《统计学习方法》及网友pluskid的支持向量机系列等等,于此,还是一篇学习笔记,只是加入了自己的理解和总结,有任何不妥之处,还望海涵。全文宏观上整体认识支持向量机的概念和用处,微观上深究部分定理的来龙去脉,证明及原理细节,力保逻辑清晰 & 通俗易懂。

同时,阅读本文时建议大家尽量使用chrome等浏览器,如此公式才能更好的显示,再者,阅读时可拿张纸和笔出来,把本文所有定理.公式都亲自推导一遍或者直接打印下来(可直接打印网页版或本文文末附的PDF)在文稿上演算,从而享受随时随地思考、演算的极致快感。

继续阅读支持向量机通俗导论(理解SVM的三层境界)