关于 Code/4_viewer/6_hook_for_grad_cam.py 中comp_class_vec计算Loss的疑惑

Aperta
#44 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python, pytorch

Direzione di ricerca

Start by reading Code/4_viewer/6_hook_for_grad_cam.py and the comp_class_vec function shown in the issue. Trace how output and the selected class vector are used in the Grad-CAM flow, then document whether this value is intended as a training loss or an objective for gradient computation, addressing the five-class example.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

源代码如下:

def comp_class_vec(ouput_vec, index=None):
    if not index:
        index = np.argmax(ouput_vec.cpu().data.numpy()) # int
    else:
        index = np.array(index)
    index = index[np.newaxis, np.newaxis]   # (1,1) ndarray
    index = torch.from_numpy(index)     # (1,1) Tensor
    one_hot = torch.zeros(1, 1000).scatter_(1, index, 1)    # 热编码   (1,1000) Tensor  全0和一个和1
    one_hot.requires_grad = True
    class_vec = torch.sum(one_hot * output)  # 求损失

    return class_vec

按照我对该Loss计算方法的理解,

比如5分类,ouput_vec最大最大概率为pos=3的类别,
ouput_vec=[0.1,0.1,0.6,0.1,0.1]
one_hot = [0,0,1,0,0]
计算torch.sum(one_hot * output)=0.6

如果pos=3类别的概率更高,计算出的torch.sum(one_hot * output)会越大。但是按直观来理解,网络判断正确的概率更高了,所以Loss应该更低才对啊?

Lingua principale
Python
Stelle
8k
Fork
1.7k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TingsongYu/PyTorch_Tutorial

Tutte le issue di TingsongYu/PyTorch_Tutorial

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.