博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缺乏支持!Caffe深度学习框架未来堪忧
阅读量:6857 次
发布时间:2019-06-26

本文共 2791 字,大约阅读时间需要 9 分钟。

文章讲的是
缺乏支持!Caffe深度学习框架未来堪忧
Caffe是由贾扬清在伯克利上学期间开发的,该项目已经开放源码,目前已获得社区贡献以及伯克利视觉和学习中心(BVLC)赞助。广泛来说,BVLC现在是伯克利人工智能研究(BAIR)实验室的一部分。同样,Caffe也已经超出了视觉范围,包括非视觉深度学习部分,虽然已发布的Caffe模型绝大多数仍然与图像和视频相关。

  Caffe是一个由表达式,速度和模块化组成的深度学习框架。其优势在于Caffe的模型和优化是通过没有硬编码的配置来定义的,以及在GPU机器上设置了一个flag以方便在和GPU之间切换,然后部署到集群或移动设备上。

  与此同时,随着我们进入2017年,Caffe已经在1.0.0 RC 3版本几乎停留一年了。虽然有一些代码改进和可见进度,但项目仍然不稳定。目前很多人认为Caffe的安装和配置还比较复杂,但文档可以接受。

在Caffe演示中,基于网络的图像分类示例使用卷积神经网络,这也是Caffe的强大之一。该演示使用提供的范例是正常的,但我自己的图像没有试验成功,即便我的图片已经符合所列出的要求。

  Caffe功能和用例

  Caffe是一个代码经过良好测试的开放框架,以及深度学习模型和实例,使用以纯C ++编写的核心库与CUDA,以及命令行,Python和MATLAB接口为主。

  Facebook使用Caffe模型对上传图像进行有害内容检测,这是一个很重要的功能,但摄影师对这种直接过滤而不考虑艺术背景的方式很不赞同。

  Caffe另一大新颖技术是“微调”。这是一个对大量数据训练模型的过程,例如ImageNet的图像关键词,编辑神经网络参数以及使用预训练参数作为学习新技能的起点,例如图像样式识别,微调技术有时可以减少新类的训练时间。

  Caffe安装

  当我几个月前第一次尝试查看Caffe时,当时我无法在MacOS Sierra上构建Caffe可执行文件,追踪问题发现有一行显示在makefile文件中明确引用旧版本框架。我决定等维护者开始构建Sierra,再继续审查处理。我也希望,Nvidia很快就会开始支持Xcode 8,使我可以在不影响其他项目的前提下构建Caffe与CUDA GPU支持。

在MacBook Pro上,在2.6 GHz Intel Core i7 上培训MNIST LeNet大约需要7.5分钟,10,000次迭代。这个速度足够快,可以与运行LeNet的其他框架相媲美。但是在CUDA GPU上,如果适合GPU的RAM,则只需要一分钟。

  更新存储库后,我可以构建和测试CPU的可执行文件,以及配置Python库以便执行示例Jupyter notebook。然而,当使用shell脚本访问单元格时,Python就会崩溃。

在MacOS Sierra上,可以将Caffe导入Jupyter Notebook,但无法下载预先训练的CaffeNet模型。

  我试着在Windows 10上安装Caffe,在Caffe中有相应支持。新的CMake构建声称是可以执行的,但似乎没有创建可执行文件。 一旦将项目从Visual Studio 2013转换到Visual Studio 2015,旧版本的Visual Studio确实可以正常工作。但是,无法安装python,甚至不能启动Jupyter Notebook。

  由于Caffe的“home”系统是Ubuntu,我启动了一个Ubuntu“Trusty”虚拟机,并根据文档尝试构建Caffe。这一次,我可以构建和测试可执行文件,但还是不能运行Python。

  这让我只有两个选项,选择故障排除或者故障安装:在Docker中构建和运行,或在云中运行预配置的机器映像。在存储库中读取Docker文件的文档比较模糊,Docker脚本在Ubuntu上安装项目的方式与文档中提到的不同,新手安装可能需要花费几天时间,但安装完你就会发现实际只需要一个小时就可以。

  Caffe运行

  Caffe有命令行,Python和MATLAB接口。由于目前缺少MATLAB副本,我没有尝试测试该接口。Caffe依赖ProtoText文件来定义其模型和求解器。 如下所示,显示了参考“CaffeNet”图像分类器的模型和求解器配置。

Caffe依赖ProtoText文件来定义其模型和求解器。这个ProtoText文件定义了用于ImageNet图像分类的参考CaffeNet(修改的AlexNet)卷积模型。

这个ProtoText文件定义了CaffeNet(修改的AlexNet)求解器用于ImageNet图像分类。注意,可以在此文件中设置GPU或CPU模式。

  Caffe在其模型模式中逐层定义网络。网络定义从输入数据到整个模型。当数据和派生数据向前向后遍历网络时,Caffe存储,通信和操作信息为blob(二进制对象),内部以C语言方式存储N维数组。图层对blob执行操作,它们构成了Caffe模型组件。

  一旦你建立了PyCaffe,你就可以在Caffe上运行Python脚本,并且能够运行Jupyter Notebook。如上所述,我在运行Jupyter Notebook时遇到了一些问题,虽然我可以在NBViewer中查看已发布的notebook,如下所示。

在NBViewer中显示的预先计算的Caffe Jupyter Notebook。这本解释了使用一只可爱的小猫在Caffe上实验的过程。建议使用该模型需要在GeForce GT 650M上有超过1GB的GPU可用,原始图像应使用g2.2xlarge或更好的实例。

  结语

  Caffe目前的社区比较懒散,导致该项目后期的发展缓慢。在社区中发问,很难得到答复。相比之下,AWS不仅具有可用于GPU的实例,而且还提供具有Caffe预构建并具有GPU支持的AMI映像。亚马逊不再是拥有这种支持的唯一云。还可以考虑Azure Batch Shipyard及其使用NC系列实例的深度学习,Google云也即将加入这场战争。

  正如我们所看到的,Caffe是一个深度学习框架,从Berkeley的视觉和学习研究中心成长起来的,目前仍然强调图像处理,尽管其范围有所扩大。与其他深度学习框架相比,Caffe开发人员对项目的成熟度,可移植性和迭代速度有待提高。如果现有的Caffe模型符合你的需求或可以根据你的目的微调,建议使用。否则,建议使用TensorFlow,MXNet或CNTK。

免费开源。 平台:Linux,MacOS,Windows,Docker。

作者:zyy

来源:IT168

原文链接:缺乏支持!Caffe深度学习框架未来堪忧

转载地址:http://rpiyl.baihongyu.com/

你可能感兴趣的文章
js中createlement和creatTextnode属性
查看>>
DL4NLP——词表示模型(二)基于神经网络的模型:NPLM;word2vec(CBOW/Skip-gram)...
查看>>
David Freedman统计学书评
查看>>
[转]Becoming a JavaScript ninja
查看>>
java中数据类型转换
查看>>
带上下界的网络流
查看>>
搭建高可用mongodb集群(三)—— 深入副本集内部机制
查看>>
layer.js子窗口关闭并传数据到父窗的方法
查看>>
koa2入门(2) koa-router 路由处理
查看>>
记一次中台数据传输同步Elasticsearch失败的车祸现场
查看>>
找暑期实习总结
查看>>
转载:技术人员的管理思维观
查看>>
如何使用Dilworth定理
查看>>
7.11 求总和的百分比
查看>>
Python入门
查看>>
《CLR via C#》读书笔记 之 类型基础
查看>>
WPF中RadioButton的分组
查看>>
JavaScript new对象的四个过程
查看>>
Docker的Mysql数据库:把数据存储在本地目录
查看>>
javascript 判断是否是PC还是手机端
查看>>