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接口