caffe 速覽筆記

2021-08-03 12:48:10 字數 1825 閱讀 8250

blob與tensorflow中的tensor類似,都是用來在節點之間傳遞資料所用,介面也類似,常規的dimension是 資料量n x 通道k x 高度h x 寬度w

blob內部存有data和diff兩大塊。前者是傳遞的資料,後者是計算的梯度。

由於blob同時存在cpu和gpu,所以有兩種方式來訪問他們:

const dtype* cpu_data() const;

dtype* mutable_cpu_data();

要使用合適的方式來訪問blob變數,主要是因為blob具有cpu和gpu同步功能,會進行cpu和gpu的通訊。所以如果不想更改值的話,最好使用const來呼叫,以減小通訊開銷。並且blob的指標不要存在自己的物件中,而使用函式來獲取指標,因為syncedmem需要函式的呼叫來確定什麼時候複製資料。

cpu 和 gpu 之間的轉換?

layer是模型的本質與計算的基本單元。包括卷積、池化、內積、sigmoid等。

每個layer包括了三個重要的計算:設定、前向傳輸、後向傳輸(setup, forward, backward)

net是乙個layer連線的組合,組成了乙個有向無環圖。

這樣進行定義:

name: "logreg"

layer

}layer

}layer

forward 與 backward 的傳輸是net的重要計算。

forward計算:

backward計算:

普通:

layer

loss weight:

layer

最後可根據所有loss進行加權相加計算:

loss := 0

for layer in layers:

for top, loss_weight in layer.tops, layer.loss_weights:

loss += loss_weight * sum(top)

各種用於計算梯度與loss的方法。

//todo

可利用設定transformationparameter來進行輸入的預處理(mean subtraction, scaling, random cropping, and mirroring)

當transformationparameter失效時,可利用 bias, scale, and crop層進行處理。

有以下幾種data layers:

以images為輸入,以images為輸出。

有以下幾種vision layers:

in:

layer 

# common data transformations

transform_param

}

out:

layer 

}

筆記 python模組速覽

有些東西,可能不經常用,尤其對於像我這種剛學的小夥伴來說更是如此。對於這部分內容可以不會用,但是一定要了解有這個東西,知道這個東西是什麼,能幹什麼,當我需要的時候可以想到,這個東西可以派上用場,到時再深入學習也為時不晚。目錄 常用內建模組 datetime collections base64 st...

Git命令速覽 git筆記

版本控制系統 vcs 在 git 中的絕大多數操作都只需要訪問本地檔案和資源,不用連網。但如果用 cvcs 的話,差不多所有操作都需要連線網路。因為 git 在本地磁碟上就儲存著所有當前專案的歷史更新,所以處理起來速度飛快。對於任何乙個檔案,在 git 內都只有三種狀態 已提交 committed ...

筆記速覽 訊息佇列的問題

總結自 中華石衫 如何保證訊息佇列的高可用啊?缺點 導致系統可用性降低 就kafka來說 ha機制,就是replica副本機制 isr leader 掛了咋辦?broker掛了咋辦?controller掛了咋辦?訊息佇列重複消費?如何保證訊息不被重複消費啊 如何保證訊息消費時的冪等性 原因 任務重啟...