PyTorch怎麼實現TTA Test Time Augmentation

時間 2021-06-14 22:10:56

1樓:陳瀚可

一般用 TTA 的大多數情況下都已經實現了 k-fold 和 train time augmentation 吧? 這樣的話簡單的來說就是 dataset 給 train() 的 augmentation 和給 eval() 的 augmentation 不同就是了:

你的目的是創造給 train() 和 eval() 不同的 augmentation 方法. 你希望在 MyDataset 裡實現 (據說這樣最大的利用了 Pytorch DataLoader 的效能?: 更好的平衡 GPU 和 CPU?

)如果你在用 Pytorch 的 DataLoader (推薦使用), 你會發現乙個問題: 在執行

forbatch_index,(

ids,

image

,labels_0

,image_for_display)in

enumerate

(dataloader

):時, 會直接呼叫 class MyDataset(data.Dataset) 裡面的 def __getitem__(self, indice).

但是這個呼叫卻不能加入更多的引數, 如 useTrain=False 之類的 (除非你更改 Pytorch 內部原始碼)

自定義 class MyDataset(data.Dataset)

自定義乙個 train_collate Method. 這個變數就是你告訴 DataLoader 你這是在 train 還是在 evil. 例如:

train_loader = data.DataLoader(self.datasetbatch_size=batch_sizeshuffle=Falsesampler=self.

folded_samplers[config.fold]["train"batch_sampler=Nonenum_workers=config.TRAIN_NUM_WORKERcollate_fn=train_collatepin_memory=Truedrop_last=Falsetimeout=0worker_init_fn=None

請問用pytorch訓練過程,是否可以實現GPU一直處於訓練狀態,模型評價交給CPU?

當然可以啦,但是有兩個問題需要你考慮 第乙個是大部分的pytorch程式都是使用CPU對DataLoader進行操作的,也就是說就算是你的GPU一直實在處於訓練狀態,你的CPU也不是閒著的,這個很好看,開個nvidia smi同時再開個htop看看cpu和gpu佔用率就知道了。另外你應該聽說過調nu...

PyTorch怎麼對一條連續的線進行分類(每種型別的線長度不等,比如心率圖)?

小宋是呢 深度應用 首屆中國心電智慧型大賽初賽開源Baseline 基於Keras val acc 0.88 一起來圍觀吧 https blog.csdn.net xiaosongshine article details 88972196心電圖檢測分類的開源教程,基於1維CNN卷積。 悟冥 稍等,...

超光速怎麼實現?

小咖啡 贊同 尋風 的回答 不過廣義相對論中,座標速度幾乎沒什麼實在的物理意義。廣相裡定義的速度大概有三種 一是觀測者在時空區域性 在瞬時區域性慣性系 測出的物體運動速度,這個速度是絕對不會超光速的,否則因果律真的會受到考驗。理由是強等效原理,不展開。二是觀測者測出的遠方某個物體的運動速度,即用測出...