reid常用評價指標roc rank1 map,誤識率far, 以及optim lr_scheduler 學習率衰減函數

1 roc, 人臉識別或者reid問題 誤識率far

*roc 橫座標是 誤識率 far(fpr) 縱座標是tpr *
ROC曲線-閾值評價標準 https://blog.csdn.net/abcjennifer/article/details/7359370
用來確定不同數據集下的閾值,實際情況下的不同數據集 由於是在沒有label下的查找, 需要限定閾值來判斷是否是一個人,大於閾值可能是一個人,小於閾值的一定不是一個人(雖然小於閾值的也有很小部分判斷錯誤
例如固定橫座標 far =0.001 far=0.01 0.1 tpr 正確率閾值卡高了,可能會把相似度低的圖片過濾掉

far tar測試 代碼實現可以如下做
假設,正樣本對1萬個(圖片1,圖片2,1),負樣本對10萬個(圖片1,圖片2,0),生成圖片對txt 文件,1代表兩張圖片是一個人,用歐式距離
當FAR=0.1時,查看10萬負樣本中,排序的10%中,距離最低的那個閾值(排序後的第10萬*10%),當成tar閾值,大於閾值不是一個人,小於閾值是一個人
當FAR=0.001時,同上計算

或者直接計算所有的 tp fp tn 這些指標計算也可以

在這裏插入圖片描述
在這裏插入圖片描述

2、rank1 map

兩者測試區別解釋,參考連接 https://blog.csdn.net/Gavinmiaoc/article/details/80840193
map 更高底庫所有的該id圖片排序都在前面,對於該數據集來說特徵提取性能更好,相關說明見如下連接

多粒度網絡(MGN)的結構設計與技術實現 https://blog.csdn.net/Gavinmiaoc/article/details/80840193

在這裏插入圖片描述

3 torch 學習率參數設置問題

pytorch 7個學習率衰減函數接口 https://blog.csdn.net/junqing_wu/article/details/93248190
在這裏插入圖片描述
PyTorch學習率調整策略通過torch.optim.lr_scheduler接口實現。PyTorch提供的學習率調整策略分爲三大類,分別是
a. 有序調整:等間隔調整(Step),按需調整學習率(MultiStep),指數衰減調整(Exponential)和 餘弦退火CosineAnnealing。
b. 自適應調整:自適應調整學習率 ReduceLROnPlateau。
c. 自定義調整:自定義調整學習率 LambdaLR

在這裏插入圖片描述

# 準備環境
import torch
import torch.optim as optim
from torch.optim import lr_scheduler
from torchvision.models import AlexNet
import matplotlib.pyplot as plt

model = AlexNet(num_classes=2)
optimizer = optim.SGD(params=model.parameters(), lr=0.05)


不知道學習率衰減的變化,就畫圖看看


scheduler = lr_scheduler.CyclicLR(optimizer,base_lr=0.05,max_lr=0.1,step_size_up=10,step_size_down=10)

plt.figure()
x = list(range(100))
y = []
for epoch in range(100):
    scheduler.step()
    lr = scheduler.get_lr()
    y.append(scheduler.get_lr()[0])

plt.plot(x, y)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章