当前位置: 首页 > 文档资料 > Caffe 学习笔记 >

caffe 缺点

优质
小牛编辑
123浏览
2023-12-01

不支持任意数据类型

Caffe大部分数据结构(如Blob、Layer、Net、Solver及其派生类)都是模板类,通过实例化模板参数来支持多种数据类型。

事实上,Caffe只支持float和double两种类型网络,如果创建Blob实例,则会发现缺少Update()计算实现。

Caffe依赖BLAS库实现基本运算,BLAS不支持的数据类型,Caffe同样不支持。

依赖包复杂

卷积层效率不高

架构问题

  • 使用C++设计并实现新的Layer,而模型定义仍需要用ProtoBuf描述,二者必须手动实现匹配
  • 新增一个层,需要手动实现forward、backward、gradient update三种算法
  • 为了支持GPU,需要再手动实现一遍GPU版forward、backward、gradient update
  • 新增层需要添加proto描述,如果添加了caffe.proto中的新层id,那么很可能与其他分支冲突
  • 只支持单机多卡并行计算,不支持多机多卡分布式计算
  • 只支持数据级别并行,不支持模型级别并行

应用场景局限

Caffe从一开始就主要面向计算机视觉、图像分类和识别、目标检测等领域,只考虑图像数据作为输入,而对语音、文本数据支持不好。