caffe的核心模块

Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清,目前在Google工作。

Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换。

Caffe的核心模块有三个,分别是Blobs、Layers和Nets。

Blobs用来进行数据存储、数据交互和处理,通过Blobs,统一制定了数据内存的接口。Layers是神经网络的核心,定义了许多层级结构,它将Blobs视为输入输出。Nets是一系列Layers的集合,并且这些层结构通过连接形成一个网图。下面进行详细介绍:

1.Blobs。Blobs本质是一个N维向量,用来存储数据信息,这些数据信息包括图片、深度网络进行前向传输时的数据和反向求梯度过程时的梯度数据等。对于图像数据来说,Blobs通常是一个4维向量,其格式为(Number,Channel,Height,Width),其中Channel表示图像的通道数,若图像是单通道的灰度图,则Channel=1;若是3通道的RGB图像,则Channel=3。Height和Width分别表示图像的高度和宽度。至于Number则表示图像批块(Batch),批处理可以使神经网络有更大的吞吐量。

2.Layers。Layers是神经网络的核心,Caffe设计实现了许多层结构,包括卷积、池化、损失等层结构,利用这些层结构可以实现绝大部分的神经网络模型。Layers将下层的数据输出作为输入,进而通过内部运算输出。Layers层的定义和使用一般需要三个步骤:(1)建立层,包括建立连接关系和初始化其中一些变量参数;(2)前向传输过程,给定输入并计算出相应的输出;(3)反向传播过程,进行反向梯度的计算,并把梯度保存在层结构中。

如果对于源代码有些层不满意,可以自己定义。总结一下,一般就是要经过这么几步:

1、参考目录caffe/include/caffe/layers下,定义相关函数。比如链接的仁兄的可以定义为allpass_layer.hpp (     链接:https://blog.csdn.net/king16304/article/details/52763624)2。参考caffe/src/caffe/layers目录下相关层实现的函数。这里可以看到,有定义前向传播与反向传播相关函数。

3、编辑caffe/src/caffe/proto/caffe.proto,找到LayerParameter,在最后增加一项,里面的编号不要与别的冲突,如果Layer有参数,还需要再定义一个关于自定义层的protobuffer。

4、然后在src/caffe/layer_factory.cpp中添加响应代码。

5、src/caffe/test中写一个test_allpass_layer.cpp,用include/caffe/test/test_gradient_check_util.hpp来检查前向后向传播是否正确。

一共上面的几步,就可以实现自己的一个layer。

3.Nets。Nets是由层Layers组成的,定义了输入、输出、网络各层,并将各层连接成一个有向无环图(DAG),由此定义了一个网络。一个典型的网络应该有数据输入,并且以一个代价函数作为输出,针对不同的任务,例如分类和重构,应选择不同的代价函数。

Caffe生成的数据分为2种格式:Lmdb和Leveldb

它们都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。

虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。

因此lmdb取代了leveldb成为Caffe默认的数据集生成格式。

Google Protocol Buffer的安装

Protocol Buffer是一种类似于XML的用于序列化数据的自动机制。

caffe框架

python caffe框架_caffe框架基础相关推荐

  1. 篇一、Flask打造 Python Web 开发的灵活框架,实现简易登录。要求有 Python、HTML 和 CSS 基础。

    ⭐ 简介:大家好,我是zy阿二,我是一名对知识充满渴望的自由职业者. ☘️ 最近我沉溺于Python的学习中.你所看到的是我的学习笔记. ❤️ 如果对你有帮助,请关注.点赞,让我们共同进步.有不足之处 ...

  2. python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架

    很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659 ...

  3. python+requests接口自动化测试框架实例详解教程(米兔888)

    来源:https://my.oschina.net/u/3041656/blog/820023 源码:https://pan.baidu.com/s/1lgIEToiczTvvjy--p-N20g 提 ...

  4. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

  5. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

  6. 从0到1告诉你搭建完整Python+requests接口自动化测试框架!

    前言 很多小伙伴不知道什么是框架?框架有哪些东西? 一步步从需求分析到报告生成告诉你如何搭自动化建框架. 学完unittest后这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main. ...

  7. 如何搭建python框架_从0到1告诉你搭建完整Python+requests接口自动化测试框架!

    前言 很多小伙伴不知道什么是框架?框架有哪些东西? 一步步从需求分析到报告生成告诉你如何搭自动化建框架. 学完unittest后这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main. ...

  8. 【Java从0到架构师】分布式框架通信核心基础 - 序列化(JDK、Protobuf)、远程过程调用 RMI

    分布式框架通信核心基础 序列化 JDK 的序列化 JDK 序列化的一些细节 Protobuf 序列化 Protobuf 环境搭建与操作 Protobuf 原理分析 实际数据传输 序列化技术选型 远程过 ...

  9. python selenium自动化框架_一文讲透!实现一个Python+Selenium的自动化测试框架如此简单!...

    首先你得知道什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium I ...

  10. python深度学习include框架_《用Python实现深度学习框架》上市

    朋友们,<用Python实现深度学习框架>已经由人民邮电出版社出版上市了.在这本书中,我们带领读者仅用Python+Numpy实现一个基于计算图的深度学习框架MatrixSlow.本书讲解 ...

最新文章

  1. python3 正则表达式 嵌套表格_在Python中使用正则表达式匹配嵌套结构
  2. hex文件和bin文件区别
  3. 线程队列,线程池和协程
  4. 还是俄罗斯方块之android版
  5. 【华为云技术分享】基于Atlas 200 DK的原版YOLOv3(基于Darknet-53)实现(Python版本)
  6. 关于 iOS 证书,你必须了解的知识
  7. 致敬ATSS | Dynamic ATSS再造ATSS辉煌!!!
  8. mysql varbinary 转换_mysql binary和varbinary存储字段转换大小写
  9. 转转首席架构师 孙玄:如何成为一个有情怀的工程师?
  10. 关于数据库、数据仓库、数据湖、数据中台概念和区别
  11. vgg16 清华镜像_Python models.vgg16方法代码示例
  12. BaseTestCase system 1.0 体验版
  13. java网页保存成pdf_JavaScript+Java实现HTML页面转为PDF文件保存的方法
  14. android 签名工具 autoSign jarsigner
  15. JAVA之ZIP、RAR解压工具类
  16. RxJava模式与原理-----标准观察者与RxJava观察者
  17. 阿里云香港服务器被打流量攻击怎么办
  18. SQLServer还原数据库
  19. 2022.04.21【日常维护】|服务器存储清理浅谈
  20. 将quantopian的动量策略迁移到老虎证券量化api

热门文章

  1. 阿里云服务器如何登录?阿里云服务器的三种登录方法...
  2. Office在线协作(一)- 在本地服务器上安装ONLYOFFICE Docs Community Edition For Windows Server - 超详细安装教程
  3. Excel对比重复项
  4. Java订单接入支付宝二 支付回调
  5. 【Ubuntu】常用Vim插件
  6. 微信小程序订单支付后端demo
  7. oracle优化技巧
  8. LED串联并联驱动方式分析
  9. u大师装iso系统linux,u大师给苹果电脑装win7win10系统
  10. python机械臂写字_SCARA机器人 机械手臂 写字机 DIY 视觉识别