【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe

从零抓包分析AVDTP:用Wireshark解密蓝牙音频传输全流程 本文详细介绍了如何使用Wireshark抓包工具分析AVDTP协议,解密蓝牙音频传输的全流程。从实验环境搭建到信令交互解析,再到媒体流传输深度分析,逐步揭示蓝牙音频传输的技术本质,帮助开发者深入理解AVDTP协议的工作机制。 阅读详情

深度学习开源框架众多,基于C++的训练框架唯有Caffe一个,尽管Caffe在做一些比较新的任务时成本极高,但它依旧有它存在的价值,今天在这里给出几个推荐理由。

作者&编辑 | 言有三

1 Caffe的功绩

笔者从2015年开始从事深度学习相关的工作,彼时不管是学术界还是工业界,Caffe是主流。哪怕随着几年后Tensorflow,MxNet,以及近两年Pytorch的崛起,在移动端部署,各家公司在很长一段时间内都是将Caffe的核心代码移植到手机上。

随着腾讯的NCNN,小米MACE等移动端开源框架的流行,这个比例才慢慢降低。但是如果你认识一些在移动端上做视觉算法的朋友,可以问问他们的产品线上还有Caffe还有多大的比例,我相信或多或少都有,甚至是主流。

640?wx_fmt=jpeg

接口稳定,推理速度快,这是它流行的最重要的原因,这两点对于工业界应用来说是真正的刚需。

2 Caffe安装真的很难吗

很多同学害怕Caffe,首先是因为害怕它的环境配置。诚然,Caffe需要自己编译,但是这个编译真的难吗?

以Ubuntu为例,高于17.04的版本,安装就一条命令:

sudo apt install caffe-cuda

低于17.04的版本,也就是要做几件事情:

(1) 安装Nvidia驱动和CUDA。

(2) 安装依赖库。

(3) 在Caffe源代码中配置好库路径然后编译。

第一条,或许是有一些坑,但这不是做深度学习算法工程师必备的技能吗?公司和实验室有了新的机器让你配置难道也说不会。

第二条,无脑apt-get命令。

第三条,配置一下库的路径而已,Makefile都没让你写,只是无脑敲一下make命令。

新手在环境安装上卡住,其实并不是Caffe难,而是使用者对Linux系统非常不熟悉,这个锅Caffe不背。还从未听过哪家做深度学习算法开发的公司不基于Linux环境,你今天不学会到了公司更痛苦。

3 Caffe其实是最简单的

很多人觉得Caffe好难啊,其实我想说,Caffe有可能是最简单的了。它的使用流程如下:

640?wx_fmt=png

以图像分类任务为例:

(1) 准备数据就是将数据按照Caffe分类任务的输入格式准备如下,这很简单吧,一个Python遍历脚本。

../../../../datas/mouth/1/182smile.jpg 1

../../../../datas/mouth/1/435smile.jpg 1

../../../../datas/mouth/0/40neutral.jpg 0

../../../../datas/mouth/1/206smile.jpg 1

(2) 定义网络,就是去改改网络配置文件train.prototxt,复杂点的写个脚本,卷积层的格式如下:

layer {

一边改一边在Netscope中实时可视化,网络拓扑结构有没有问题一点就能看出来。

640?wx_fmt=png

(3) 配置训练参数,就是改改下面的文件。

net: "./train.prototxt"

test_iter: 100

test_interval: 10

base_lr: 0.00001

momentum: 0.9

type: "Adam"

lr_policy: "fixed"

display: 100

max_iter: 10000

snapshot: 2000

snapshot_prefix: "./snaps/conv3_finetune"

solver_mode: GPU

(4) 训练,跟大部分框架一样,甚至更加简单。下面是一个finetune模型的例子。

SOLVER=./solver.prototxt

WEIGHTS=./init.caffemodel

../../../../libs/Caffe_Long/build/tools/caffe train -solver $SOLVER -weights $WEIGHTS -gpu 0 2>&1 | tee log.txt

纵观以上任务,你做了啥?不就是写个脚本处理了一下数据,把网络模块化的搭建一下,把优化参数配置一下,整体下来,可能20行Python代码都没有。

恐怕只有像Darknet这样类似的框架才有如此清晰而又简单的过程。

只要把你任务需要的网络层准备好了,用Caffe训练和测试都非常简单,至于网络层不会写,各路大神开源的代码在GitHub上多的很,至少一些基本的视觉任务都是有的。GitHub拿来主义,人人皆会。

4 如何用Caffe学习C++和CUDA

使用Caffe可以非常方便的锻炼自己的C++和CUDA水平,有三步曲。

(1) 阅读学习Caffe的源代码和设计模式。

Caffe的所有源代码都是C++/CUDA写的,使用工厂设计模式,代码结构清晰,可读性和拓展性强,效率高。

640?wx_fmt=png

(2) 自己添加新的网络层,包括数据层,损失层等。

把C++类的设计,各种数据结构和标准库熟悉并且用起来,把CUDA代码也写一写。这些都是以后去公司从事模型部署和优化框架工作所必须准备好的技能。

640?wx_fmt=jpeg

(3) 学会用Caffe部署和分析模型。

学会用Caffe去分析每一个网络层的计算量和计算时间,找到性能瓶颈。学会用它把模型进行封装和加密,在嵌入式平台中使用。

640?wx_fmt=png

Caffe确实没有像Pytorch等框架那么学术而更偏工程,但工程能力正是现在大多数想进入这一行的同学所欠缺的。

你会的,别人不会,才体现出你的价值。

对公司来说重要的,不是你会什么,而是它需要什么。

脱离了工程实践能力的算法工程师,满大街都是,但他们找不到工作。

5 Caffe的稳和缺点

Caffe最大的特点是稳,不像Tensorflow等框架一样更新一次版本后原来的代码就不能用了,库又得重新装了等等,只需要专注于自己的任务即可。

当然版本稳定就带来了一些缺点,比如不支持自动求导,不支持模型级并行,只支持数据级并行,不适合于非图像任务等。

但还是那句话,对于基于卷积神经网络的成熟而通用的任务来说,Caffe是很不错的选择,它的学习价值,也永不褪色。

相关学习资料,可以参考我们的往期文章和GitHub开源框架。

【完结】给新手的12大深度学习开源框架快速入门项目

640?wx_fmt=jpeg

总结

C++和CUDA等代码的水平对于在工业界从事深度学习相关工作至关重要,差异化的能力更容易让你在竞争中取胜。

有三AI夏季划

640?wx_fmt=png

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

使用 Prometheus 监控 Spring Boot 应用 本文介绍了使用SpringBoot+Prometheus+Grafana实现应用监控的方案。首先在SpringBoot项目中集成Micrometer和Actuator组件,通过配置暴露Prometheus监控端点。接着配置Prometheus采集应用指标数据,并通过Grafana可视化展示。具体步骤包括:1)SpringBoot集成Micrometer;2)配置Prometheus抓取应用指标;3)安装Grafana并导入SpringBoot监控模板;4)展示JVM和业务指标。该方案可以实现对SpringB 阅读详情

相关推荐

网络基础(二):数制转换与分类编址的IPv4地址

本文介绍数制转换、IP地址、分类编址的IPv4地址,希望对你有帮助!

十七拾的博客 1057

测试caffe安装成功_windows系统下Caffe的安装<深度学习系列>

一.环境的准备Visual studio2013(编译环境)64位Win7/10系统(操作系统)Notepad+++中文编码器(用于写或修改代码)二.caffe的CPU版本安装(Debug版本和Release版本)1.从github下载Caffe的windows分支。https://github.com/BVLC/caffe/caffe压缩包https://github.com/BVLC/caff...

weixin_42526068的博客 659

KALI虚拟机挂代理教程

需要你本地挂了代理,然后通过虚拟机连接本机代理端口,不说废话了,直接说怎么做了。 1.查看选项设置中自己的小飞机的本地端口是多少:(默认是1080) 2.本机win+r打开cmd,输入ipconfig查看本地ip,我的本地ip是192.168.0.107: 2.打开kali虚拟机,编辑ProxyChains配置文件: vi /etc/proxychains.conf 3.在文件末尾的ProxyList中添加物理机本地ip和1080端口作为代理地址: 4.保存并退出即可: esc :wq 回车 5.

qq_34853514的博客 3万+

caffe安装 cuda安装 opencv安装 cudnn安装 python相关依赖库安装

1安装cuda8.0 安装依赖库 #sudo apt-get install g++ #sudo apt-get install git #sudo apt-get install freeglut3-dev Ctr+alt+f4 进入后台 输入用户名和密码 User: Password: #sudo vi /etc/modprobe.d/blacklist

mindfusion的博客 669

【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

本文介绍了如何在PLECS中搭建开环Buck功率级模型,验证数字电源设计的基本思路。重点内容包括: 明确开发顺序:先开环验证功率级,再闭环设计控制器 搭建关键组件:输入电源、PWM模块、MOSFET开关、续流二极管、LC滤波电路及负载 设置初始参数:24V输入、12V输出、200kHz开关频率、22μH电感、100μF电容 测量关键波形:MOSFET Vds验证开关动作、电感电流纹波和输出电压稳态值 提供完整仿真模型和GitHub资源,便于读者复现验证 文章强调通过开环测试先确保功率级正确性,为后续闭环控制

weixin_43234123的博客 1224

利用Skipper跨层追踪技术高效定位LVS Short问题

本文详细介绍了如何利用Skipper跨层追踪技术高效定位LVS Short问题。通过解析Skipper的跨层trace net原理和实战操作步骤,帮助芯片设计工程师快速识别版图中的短路问题,显著提升验证效率。文章还提供了处理大规模设计的高级技巧和常见问题排查方法。

weixin_29239661的博客 510

caffe安装系列——安装cuda和cudnn

说明 网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。有的教程甚至省略了一些细节部分,让小白更不知道如何判断每一步是否操作成功,如何处理出现的错误。 作者花费了很长时间才成功地将caffe装完,期间遇到好多错误,多次重装操作系统。现在将经验写下来

张学志の博客 6万+

保姆级教程:STM32CubeMX配置PWM死区与刹车功能,防止电机驱动炸管

本文详细解析了使用STM32CubeMX配置PWM死区与刹车功能的完整流程,帮助工程师避免电机驱动中的炸管风险。通过深入讲解死区时间计算公式、CubeMX配置界面及刹车功能的安全机制,结合实际电路设计要点和调试技巧,为电机驱动和电源转换应用提供可靠解决方案。

weixin_42550597的博客 346

Caffe简明教程2:安装Caffe的第一步-安装CUDA

您可以查看所有文章的索引:Caffe简明教程0:文章列表 本文介绍如何在 Ubuntu16.04 上安装 CUDA8.0。 几点说明: 如果需要GPU加速的话,安装Caffe前需要安装CUDA8.0以及cuDNN5.1。 我使用的操作系统是Ubuntu 16.04 LTS,如果安装过程中遇到任何问题,请加群(博客左上角)讨论。 如果你想在其他操作系统上安装Caffe,请参考官方文档。

请叫我AXin 4692

使用Docker搭建MaxKB智能体平台

【代码】使用Docker搭建MaxKB智能体平台。

janthinasnail的博客 711

YOLOv11改进 | 添加注意力篇 | 一文带你改进GAM、CBAM、CA、ECA等通道注意力机制和多头注意力机制

这篇文章给大家带来的改进机制是一个汇总篇,包含一些简单的注意力机制,本来一直不想发这些内容的(网上教程太多了,发出来增加文章数量也没什么意义),但是群内的读者很多都问我这些机制所以单独出一期视频来汇总一些比较简单的注意力机制添加的方法和使用教程,本文的内容不会过度的去解释原理,更多的是从从代码的使用上和实用的角度出发去写这篇教程。欢迎大家订阅我的专栏一起学习YOLO!YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、GAM2.1 GAM的介绍2.2 GAM的核心代码。

Snu77的博客 5156

caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)

caffe是一个非常清晰且高效的深度学习框架,目前有着不少的用户,也渐渐的形成了自己的社区,社区上可以讨论相关的问题。 我从开始看深度学习的相关内容到能够用caffe训练测试自己的数据,看了不少网站,教程和博客,也走了不少弯路,在此把整个流程梳理和总结一遍,以期望可以可以仅仅通过这一篇文章就可以轻松的用caffe训练自己的数据,体验深度学习的乐趣。 1.安装和配置caffe caffe的安装

确定有穷自动机 4865

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

算法大师! 1155

caffe安装_【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe

深度学习开源框架众多,基于C++的训练框架唯有Caffe一个,尽管Caffe在做一些比较新的任务时成本极高,但它依旧有它存在的价值,今天在这里给出几个推荐理由。作者&编辑 | 言有三1 Caffe的功绩笔者从2015年开始从事深度学习相关的工作,彼时不管是学术界还是工业界,Caffe是主流。哪怕随着几年后Tensorflow,MxNet,以及近两年Pytorch的崛起,在移动端部署,各家公...

weixin_39637457的博客 106

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

测试caffe安装成功_【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe...

深度学习开源框架众多,基于C++的训练框架唯有Caffe一个,尽管Caffe在做一些比较新的任务时成本极高,但它依旧有它存在的价值,今天在这里给出几个推荐理由。作者&编辑 | 言有三 1 Caffe的功绩笔者从2015年开始从事深度学习相关的工作,彼时不管是学术界还是工业界,Caffe是主流。哪怕随着几年后Tensorflow,MxNet,以及近两年Pytorch的崛起,在移动...

weixin_39807067的博客 98

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

caffe图像分类教程_【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe...

深度学习开源框架众多,基于C++的训练框架唯有Caffe一个,尽管Caffe在做一些比较新的任务时成本极高,但它依旧有它存在的价值,今天在这里给出几个推荐理由。作者&编辑 | 言有三1 Caffe的功绩笔者从2015年开始从事深度学习相关的工作,彼时不管是学术界还是工业界,Caffe是主流。哪怕随着几年后Tensorflow,MxNet,以及近两年Pytorch的崛起,在移动端部署,各家公...

weixin_39721009的博客 114

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

caffe-cuda测试

caffe-cuda测试

jacke121的专栏 1564

cuda安装 含cudnn conda 2026

cuda安装 含cudnn conda 安装cuda 2025

jacke121的专栏 4422

验证自己的caffe是否配置成功

花了好几天的时间对电脑进行了caffe的配置,真的caffe真的配置太繁琐了,特别的麻烦。现在呢,就是验证一下是否是配置成功。 我的caffe的配置是对ubuntu自带的python2.7版本下的caffe配置。 网上有说直接在终端中执行 caffe命令如果后面有提示命令就算成功,但是我的不是这样,如下。一时间把我搞得心烦意乱。 然后,有说是在python下导入caffe如果不报错,那就是成功,我试试下,这次成功了,如下图。我现在真的是要疯掉了,到底是谁的说法是正确的,我自己都不知道了。 为

zxmyoung的博客 1870

11、Caffe -CUDA

一、GPU下使用Caffe 源码中.cu后缀结尾的文件都是GPU下运行的文件代码。 依赖库:cuDNN (CUDA下的DNN库) 安装Caffe前先安装好CUDA驱动和cnDNN库。 下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive 将Cuda放到ubuntu主界面 终端下CUDA安装: $   sudo ...

wtj318_的博客 1652

ubuntu安装caffe

Ubuntu Installation For Ubuntu (>= 17.04) Installing pre-compiled Caffe Everything including caffe itself is packaged in 17.04 and higher versions. To install pre-compiled Caffe package, just

Touch_Dream的博客 1047

caffe环境搭建、使用教程及检验相应依赖库是否安装成功

1、官网: 2、环境搭建:https://blog.youkuaiyun.com/yggaoeecs/article/details/79163789 3、教程:https://blog.youkuaiyun.com/artprog/article/details/79270392 4、书籍:

li_my_linux的博客 3043

(2) Windows下caffe安装成功测试(以mnist为例)

一、前言 在前一篇文章 (1) Windows 10 + VS2013(cpuonly)安装 caffe 教程中我们安装成功编译出了caffe.exe,但是caffe.exe是否能运行还没有测试。必经经得起检验的才是真理。下面我们就继续使用微软封装的caffe-master中的example来测试caffe.exe能否正确运行。 二、准备 2.1 下载数据 测试需要使用mnist集...

Lavi的专栏 4754

测试是否安装成功caffe

#cd caffe #sudo sh data/mninst/get_mnist.sh #sudo sh examples/minst/create_mnist.sh 如果没有GPU取消配置文件lenet——solver.prototxtGPU选项 #sudo sh examples/mnist/train_lenet.sh 修改最后一行 solv

sk_的博客 4999

windows 10 环境安装caffe并测试mnist成功详解

本文主要总结windows 10 环境下编译安装caffe并成功测试DNN的详细过程: 软件包: 硬件环境: (一)安装caffe (二)编译caffe (三)测试mnist

Sibin的博客 7043

测试caffe安装成功_【Caffe学习八】基于Anaconda源码编译安装Caffe

设备信息:Ubuntu18.04,CUDA10.0.130,CUDNN7.3.0,Anaconda(python3.7.1),opencv3.4.0一. 安装前准备工作:1. 更新Linux系统软件sudo apt-get update2. 安装GitHub依赖包,可以使用git指令从GitHub下载sudo apt-get install gitcmake build-essential3. ...

weixin_39810441的博客 356
上一篇: 如何跟随有三从零进阶中级CV算法工程师
下一篇: 【GAN优化】详解GAN中的一致优化问题
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值