日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發(fā)布時間:2025/3/20 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

深度學習開源框架眾多,基于C++的訓練框架唯有Caffe一個,盡管Caffe在做一些比較新的任務時成本極高,但它依舊有它存在的價值,今天在這里給出幾個推薦理由。

作者&編輯 | 言有三

1 Caffe的功績

筆者從2015年開始從事深度學習相關(guān)的工作,彼時不管是學術(shù)界還是工業(yè)界,Caffe是主流。哪怕隨著幾年后Tensorflow,MxNet,以及近兩年P(guān)ytorch的崛起,在移動端部署,各家公司在很長一段時間內(nèi)都是將Caffe的核心代碼移植到手機上。

隨著騰訊的NCNN,小米MACE等移動端開源框架的流行,這個比例才慢慢降低。但是如果你認識一些在移動端上做視覺算法的朋友,可以問問他們的產(chǎn)品線上還有Caffe還有多大的比例,我相信或多或少都有,甚至是主流。

接口穩(wěn)定,推理速度快,這是它流行的最重要的原因,這兩點對于工業(yè)界應用來說是真正的剛需。

2 Caffe安裝真的很難嗎

很多同學害怕Caffe,首先是因為害怕它的環(huán)境配置。誠然,Caffe需要自己編譯,但是這個編譯真的難嗎?

以Ubuntu為例,高于17.04的版本,安裝就一條命令:

sudo apt install caffe-cuda

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

(1) 安裝Nvidia驅(qū)動和CUDA。

(2) 安裝依賴庫。

(3) 在Caffe源代碼中配置好庫路徑然后編譯。

第一條,或許是有一些坑,但這不是做深度學習算法工程師必備的技能嗎?公司和實驗室有了新的機器讓你配置難道也說不會。

第二條,無腦apt-get命令。

第三條,配置一下庫的路徑而已,Makefile都沒讓你寫,只是無腦敲一下make命令。

新手在環(huán)境安裝上卡住,其實并不是Caffe難,而是使用者對Linux系統(tǒng)非常不熟悉,這個鍋Caffe不背。還從未聽過哪家做深度學習算法開發(fā)的公司不基于Linux環(huán)境,你今天不學會到了公司更痛苦。

3 Caffe其實是最簡單的

很多人覺得Caffe好難啊,其實我想說,Caffe有可能是最簡單的了。它的使用流程如下:

以圖像分類任務為例:

(1) 準備數(shù)據(jù)就是將數(shù)據(jù)按照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) 定義網(wǎng)絡,就是去改改網(wǎng)絡配置文件train.prototxt,復雜點的寫個腳本,卷積層的格式如下:

layer {

一邊改一邊在Netscope中實時可視化,網(wǎng)絡拓撲結(jié)構(gòu)有沒有問題一點就能看出來。

(3) 配置訓練參數(shù),就是改改下面的文件。

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

縱觀以上任務,你做了啥?不就是寫個腳本處理了一下數(shù)據(jù),把網(wǎng)絡模塊化的搭建一下,把優(yōu)化參數(shù)配置一下,整體下來,可能20行Python代碼都沒有。

恐怕只有像Darknet這樣類似的框架才有如此清晰而又簡單的過程。

只要把你任務需要的網(wǎng)絡層準備好了,用Caffe訓練和測試都非常簡單,至于網(wǎng)絡層不會寫,各路大神開源的代碼在GitHub上多的很,至少一些基本的視覺任務都是有的。GitHub拿來主義,人人皆會。

4 如何用Caffe學習C++和CUDA

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

(1) 閱讀學習Caffe的源代碼和設計模式。

Caffe的所有源代碼都是C++/CUDA寫的,使用工廠設計模式,代碼結(jié)構(gòu)清晰,可讀性和拓展性強,效率高。

(2) 自己添加新的網(wǎng)絡層,包括數(shù)據(jù)層,損失層等。

把C++類的設計,各種數(shù)據(jù)結(jié)構(gòu)和標準庫熟悉并且用起來,把CUDA代碼也寫一寫。這些都是以后去公司從事模型部署和優(yōu)化框架工作所必須準備好的技能。

(3) 學會用Caffe部署和分析模型。

學會用Caffe去分析每一個網(wǎng)絡層的計算量和計算時間,找到性能瓶頸。學會用它把模型進行封裝和加密,在嵌入式平臺中使用。

Caffe確實沒有像Pytorch等框架那么學術(shù)而更偏工程,但工程能力正是現(xiàn)在大多數(shù)想進入這一行的同學所欠缺的。

你會的,別人不會,才體現(xiàn)出你的價值。

對公司來說重要的,不是你會什么,而是它需要什么。

脫離了工程實踐能力的算法工程師,滿大街都是,但他們找不到工作。

5 Caffe的穩(wěn)和缺點

Caffe最大的特點是穩(wěn),不像Tensorflow等框架一樣更新一次版本后原來的代碼就不能用了,庫又得重新裝了等等,只需要專注于自己的任務即可。

當然版本穩(wěn)定就帶來了一些缺點,比如不支持自動求導,不支持模型級并行,只支持數(shù)據(jù)級并行,不適合于非圖像任務等。

但還是那句話,對于基于卷積神經(jīng)網(wǎng)絡的成熟而通用的任務來說,Caffe是很不錯的選擇,它的學習價值,也永不褪色。

相關(guān)學習資料,可以參考我們的往期文章和GitHub開源框架。

【完結(jié)】給新手的12大深度學習開源框架快速入門項目

總結(jié)

C++和CUDA等代碼的水平對于在工業(yè)界從事深度學習相關(guān)工作至關(guān)重要,差異化的能力更容易讓你在競爭中取勝。

有三AI夏季劃

有三AI夏季劃進行中,歡迎了解并加入,系統(tǒng)性成長為中級CV算法工程師。

轉(zhuǎn)載文章請后臺聯(lián)系

侵權(quán)必究

往期精選

  • 有三AI發(fā)布360頁11萬字深度學習CV算法工程師成長指導手冊,可下載收藏打印,未完待續(xù)

  • CV算法崗秋招臨門最后一腳,有三補招最后20個春季劃徒弟

  • 【完結(jié)】深度學習CV算法工程師從入門到初級面試有多遠,大概是25篇文章的距離

  • 【完結(jié)】優(yōu)秀的深度學習從業(yè)者都有哪些優(yōu)秀的習慣

  • 【完結(jié)】給新手的12大深度學習開源框架快速入門項目

  • 【完結(jié)】總結(jié)12大CNN主流模型架構(gòu)設計思想

  • 【知乎直播】千奇百怪的CNN網(wǎng)絡架構(gòu)等你來

  • 【AI不惑境】數(shù)據(jù)壓榨有多狠,人工智能就有多成功

  • 【AI不惑境】網(wǎng)絡深度對深度學習模型性能有什么影響?

  • 【AI不惑境】網(wǎng)絡的寬度如何影響深度學習模型的性能?

  • 【AI不惑境】學習率和batchsize如何影響模型的性能?

  • 【AI不惑境】殘差網(wǎng)絡的前世今生與原理

  • 【AI不惑境】移動端高效網(wǎng)絡,卷積拆分和分組的精髓

  • 【AI不惑境】深度學習中的多尺度模型設計

  • 【AI不惑境】計算機視覺中注意力機制原理及其模型發(fā)展和應用

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。