1 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
來(lái)自 ToTensor() 的 pytorch 文檔:
如果 PIL 圖像屬于,則將 [0, 255] 范圍內(nèi)的 PIL 圖像或 numpy.ndarray (H x W x C) 轉(zhuǎn)換為 [0.0, 1.0] 范圍內(nèi)形狀 (C x H x W) 的 torch.FloatTensor模式之一(L、LA、P、I、F、RGB、YCbCr、RGBA、CMYK、1)或者 numpy.ndarray 的 dtype = np.uint8
在其他情況下,返回張量而不進(jìn)行縮放。
由于您的 Landmark 值不是 PIL 圖像,并且不在 [0, 255] 范圍內(nèi),因此不會(huì)應(yīng)用縮放。
您的計(jì)算看起來(lái)是正確的??雌饋?lái),您的數(shù)據(jù)中可能有一些 NaN 值。
你可以嘗試類似的東西
for i in range(len(train_dataset)): landmarks = to_tensor(train_dataset[i]['landmarks']) landmarks[landmarks != landmarks] = 0 # this will set all nan to zero landmarks_arr.append(landmarks)
在你的循環(huán)內(nèi)?;蛘咴谘h(huán)中斷言 for nan 以找到罪魁禍?zhǔn)祝?/p>
for i in range(len(train_dataset)): landmarks = to_tensor(train_dataset[i]['landmarks']) assert(not torch.isnan(landmarks).any()), f'nan encountered in sample {i}' # will trigger if a landmark contains nan landmarks_arr.append(landmarks)
不,請(qǐng)參見(jiàn) 1)。如果您愿意,您可以除以地標(biāo)的最大坐標(biāo),將它們限制為 [0, 1]。
添加回答
舉報(bào)