Why GEMM is at the heart of deep learning

I spend most of my time worrying about how to make deep learning with neural networks faster and more power efficient. In practice that means focusing on a function called GEMM. It’s part of the BLAS (Basic Linear Algebra Subprograms) library that was first created in 1979, and until I started trying to optimize neural networks I’d never heard of it.
继续阅读Why GEMM is at the heart of deep learning

ROCm:AMD系开源HPC/超规模GPU计算/深度学习平台

ROCm的英文全称Radeon Open Compute platform,它是AMD在去年12月推出的一款开源GPU运算平台,目前已经发展到了1.3版本。MIOpen则是AMD为此开发的软件库,其作用是将程序设计语言和ROCm平台连接,以充分利用GCN架构。

本次发布的版本包括以下内容:

  • 深度卷积解算器针对前向和后向传播进行了优化
  • 包括Winograd和FFT转换在内的优化卷积
  • 优化GEMM深入学习
  • Pooling、Softmax、Activations、梯度算法的批量标准化和LR规范化
  • MIOpen将数据描述为4-D张量 - Tensors 4D NCHW格式
  • 支持OpenCL和HIP的框架API
  • MIOpen驱动程序可以测试MIOpen中任何特定图层的向前/向后网络
  • 二进制包增加了对Ubuntu 16.04和Fedora 24的支持
  • 源代码位于https://github.com/ROCmSoftwarePlatform/MIOpen
  • 参考文档

继续阅读ROCm:AMD系开源HPC/超规模GPU计算/深度学习平台

卷积神经网络CNN总结

卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进。卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

继续阅读卷积神经网络CNN总结

ubuntu 16.04 LTS使用开源面部识别库Openface

Openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and ClusteringOpenface是卡内基梅隆大学的Brandon Amos主导的。

1.准备系统环境

如果是服务器版本的ubuntu,可能默认Python都没有安装

2.下载代码

3.安装opencv

4.安装依赖的python

5.安装Torch7

参考链接 ubuntu 16.04 LTS上安装Torch7

编译完成后,路径变量被加入了.bashrc,我们需要刷新一下Shell的环境变量

6.安装依赖的lua

7.编译代码

8.下载预训练后的数据

9.执行测试Demo

执行的脚本face_detect.py代码如下:

Shell中如下执行代码:

识别完成后会弹出识别到的面部图片。

译文 | GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗

作者:Ian Goodfellow
翻译:七月在线DL翻译组
译者:范诗剑 汪识瀚 李亚楠
审校:管博士 寒小阳 加号
责编:翟惠良 July
声明:本译文仅供学习交流,有任何翻译不当之处,敬请留言指正。转载请注明出处。

2016年的NIPS上,Ian Goodfellow做了主题为《生成对抗网络(Generative Adversarial Networks)》的报告,报告包括以下主题:
- 为什么生成式模型是一个值得研究的课题
- 生成式模型的工作原理,以及与其他生成模型的对比
- 生成式对抗网络的原理细节
- GAN相关的研究前沿
- 目前结合GAN与其他方法的主流图像模型

原英文精辟演示文稿请点击——
PDF版:www.iangoodfellow.com/slides/2016-12-04-NIPS.pdf
KeyNote版:www.iangoodfellow.com/slides/2016-12-04-NIPS.key

本站PDF版本:Generative Adversarial Networks (GANs)

本站KeyNote版:Generative Adversarial Networks (GANs)

一句话描述GAN——
GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于真实训练样本。
更直白的讲,将generator想象成假币制造商,而discriminator是警察。generator目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于训练样本一样。

继续阅读译文 | GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗

macOS Sierra (10.12.3)编译Caffe

截止2017-03-05的最新版本代码,后续代码编译可能有所不同。为了实验目的,本次不开启GPU的支持,仅仅使用CPU。

虽然Google开源了tensorflow,但是受限于天朝的网络问题,在没有梯子的情况下,是基本上没办法编译成功的,因此我们尝试使用老牌的Caffe来进行实验,看看效果。

默认大家已经成功安装了HomeBrew,没有安装的同学参考 让Mac也能拥有apt-get类似的功能——Brew。默认大家已经安装好Xcode的最新版本,并且安装了命令行编译工具。

  • 安装Git

  • 下载源代码

  • 安装依赖的编译库

  • 编译Caffe

修改其中的编译选项:

然后修改里面的内容,找到如下内容:

去掉注释,修改后如下:

完成设置后, 开始编译

编译好的执行程序在build/tools/目录下。

Ubuntu 14.04/14.10/16.04编译CPU版本Caffe

最近在学习Deep Learning,参考一下经典的Caffe,记录一下编译历程。

  • 安装build-essentials

安装开发所需要的一些基本包

  • 安装OpenCV

图片处理都算依赖OpenCV,版本号要>=2.4版本,目前14.0414.10默认的版本都是2.4

  • 安装数学计算库ATLAS

ATLAS提供离散数学,线性代数的计算支持

  • 安装Boost

Boost提供了一系列的C++算法支持,需要>=1.55版本,目前的14.0414.10默认的版本都是1.55

  • 然后就是一些依赖项

protobuf,leveldb,snappy,hdf5,gflags-devel,glog-devel,lmdb-devel

  • 安装GIT

  • 下载代码

  • 编译Caffe

然后修改里面的内容,主要需要修改的参数包括
CPU_ONLY是否只使用CPU模式,没有GPU没安装CUDA的同学可以打开这个选项
BLAS (使用intel mkl还是OpenBLAS)
完成设置后,开始编译

  • 编译出错的处理

Ubuntu 16.04下编译时候提示:

解决方法:
1. 编辑Makefile.config,在文件最后,添加/usr/include/hdf5/serialINCLUDE_DIRS

2.修改Makefile文件,把hdf5_hlhdf5修改为hdf5_serial_hlhdf5_serial,也就是把下面第一行代码改为第二行代码。

原始内容:

修改后的内容:

  • 编译Python接口