私信发送成功
Watch Star Fork

惊奇漫画 / BrouhahaObjective-CBSD-2-Clause

Brouhaha 是一个基于iOS Metal的深度学习运算库 https://github.com/amazingyyc/Brouhaha
克隆/下载
amazingyyc 最后提交于 2017-09-17 10:49 support 1024X1024 pic
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
Readme_zh.md 2.47 KB

Brouhaha:基于iOS Metal的深度学习运算库

Brouhah是一个基于iOS Metal的深度学习运算库。这个库可以方便的调用iOS Metal Shader执行深度学习算法。

地址

github:https://github.com/amazingyyc/Brouhaha
码云:https://gitee.com/JingQiManHua/Brouhaha

更新

  1. 添加Float32支持,现在所有的“层”均支持Float16和Float32。
  2. 添加基于Float32的风格转换Demo。
  3. 修改API,更灵活的使用。

介绍

Brouhaha只包含深度学习的前向运算,并不能用于训练一个深度学习模型。在使用Brouhaha之前必须有一个使用其他的训练库(比如:Caffe,Tensorflow,Torch)训练好的深度学习model。Brouhaha包含常用的卷积(包括转置卷积,Dilated卷积),池化,激活,全联接,BatchNormalize和方便图片转换的转换层。主要包括以下三个部分:

  1. BrouhahaMetal: 使用Metal Shader编写的核心运算函数,用于加速计算。
  2. Brouhaha: 包含常用的神经网络层的抽象,使用Objective-c开发,为了加速引入了一些汇编。
  3. BrouhahaDemo: 包含3个Demo,演示怎么使用这个库。LeNet是一个使用卷积神经网络识别图片中的数字的模型。ArtTransform类似于Prisma,用于图片风格的转换,包含基于Float16和Float32的实现。

Demo

Build: 在运行Brouhaha-Demo之前需要首先编译BrouhahaMetal,然后将生成的文件BrouhahaMetal.metallib拷贝到Brouhaha-Demo的bundle中。
LeNet: 这个Demo是使用神经网络识别图片中的数字。具体的算法参考:http://yann.lecun.com/exdb/lenet/。模型文件来源于网路,抱歉忘记了出处。

ArtTransform: 这个Demo使用卷积神经网络进行图片风格的转换。算法参考:https://arxiv.org/abs/1603.08155,模型文件来源于:https://github.com/lengstrom/fast-style-transfer#video-stylization。包含了两个实现一个基于Float32一个基于Float16。

基于Float32

基于Float16

Brouhaha的优势

  1. 使用GPU代替CPU速度更快。
  2. 每个层均包含两种实现Float16和Float32,便于选择。Float16可以用于提速,Float32用于提高精度。
  3. 包含最先的“层”实现比如:TransposedConvolution, DilatedConvolution
  4. 不想Apple的Core ML和其他的第三方的库需要iOS10+的系统,Brouhaha只需要iOS8+。

未来工作

  1. 支持RNN。

项目点评 ( 0 )

你可以在登录后,对此项目发表评论

4_float_left_people 4_float_left_close