深度學習煉丹手冊

2021-10-24 22:59:04 字數 1503 閱讀 7093

對於畫素級別的影象預處理,如:將3通道的rgb彩色標籤圖對映為標籤連續的單通道8bit掩碼圖,在同樣呼叫opencv並且採用相同演算法時,c++的處理速度可能是python(opencv-python)的近百倍。目前不清楚具體原因,但是根據觀察,實際python執行時只呼叫了單個cpu,而c++版本則將任務平均分配給了所有cpu。但是python的檔案介面很好用,在處理輕量級任務優先python。

語義分割影象的label圖需要轉換為標籤連續單通道8bit掩碼圖,並用-1表示不感興趣的類別。

影象預處理方法:參見文章自己寫了一部分在語義分割上的復現:

影象預處理在分割、檢測、分類上的應用(gridmask data augmentation):

這裡還是主要聚焦於如何調整損失函式,以tensorflow和keras為樣本,介紹tensor張量的使用與調整。

首先,我們要了解在tensorflow中,loss是怎樣被構建的。正常來說,loss的構建是在模型搭建這一步被選擇,如:

parallel_model.

compile

(loss=loss_func,optimizer=optimizer_name,metrics=

['accuracy'

])

這之後再會填充資料:

history = parallel_model.fit_generator(train_ge, epochs=epochs, callbacks=call_backs,

steps_per_epoch=

int(num_train / train_batch_size)

, verbose=

1, shuffle=

true

, max_q_size=

10, workers=

1)

1 語義分割部分

參考:基於交叉熵的損失函式系列:通過逐畫素計算**分布與groundtruth分布之間的「差距」得到損失函式的值。數學上可證明交叉熵損失函式等價於最大似然估計

基於重合度度量的損失函式:基於重疊度量的方法在克服不平衡方面表現出相當好的效能。

2 目標檢測bounding box regression部分

參考:smooth l1 loss→

\to→ iou loss→

\to→ giou loss→

\to→ diou loss →

\to→ ciou loss

smooth l1 loss(fast rcnn)

iou loss

giou loss

diou/ciou loss

參考:

打造深度學習煉丹爐

其中本地安裝指的是本地帶有顯示卡的台式主機或者筆記本,遠端安裝特指雲端需要遠端連線的伺服器 以上兩種情況都各包含三種安裝方式 直接安裝 anaconda安裝 docker安裝。直接安裝的意思就是直接將框架裝在系統的 python 的 warper 下,最常用的就是 sudo pip install ...

深度煉丹術

神經網路模型的設計和訓練十分複雜,initialization,activation,normalization,優化器,學習率 等等無不是四兩撥千斤,這篇文章主要是總結一些煉丹技巧,討論下關於如何初始化 選擇啟用函式 正則化的方式和優化器的選擇等。乙個框架看懂優化演算法之異同 sgd adagra...

Ubuntu 深度煉丹環境配置

深度煉丹最麻煩的就是環境配置了,下面過程記錄了本人進行深度煉丹環境的配置。首先是安裝圖形顯示卡驅動,按如下指令進行即可 sudo add apt repository ppa graphics drivers ppa sudo apt get update sudo apt get upgrade ...