接續(xù)
前篇今年最後一次學(xué)習(xí)日就用在觀看這個(gè)範(fàn)例上了
這個(gè)範(fàn)例是取一支540p的影片並向上放大成1080p
跟傳統(tǒng)線性內(nèi)插一比還是有明顯差別
不過(guò)當(dāng)然比不上A N I他們自研的FSR、DLSS、XeSS等等
免費(fèi)範(fàn)例加減看吧
這邊就省去Device初始化的步驟了,基本上跟上次的Hello World是一模一樣的
1. 圖片轉(zhuǎn)成張量
理所當(dāng)然的一步,範(fàn)例以compute shader完成
在儲(chǔ)存RGB時(shí)這邊檢查了是否為NHWC布局,本範(fàn)例有偵測(cè)只要是NV卡就一定使用NHWC
2. 多層次的卷積運(yùn)算
主要在於320~341這一段,這範(fàn)例以NN縮放作為起點(diǎn)
最後把這殘差影像與NN縮放後的影像相加,完成了upscaling
這部分帶來(lái)了最大的效能損耗
3. 張量轉(zhuǎn)成圖片
一樣是根據(jù)布局來(lái)把張量轉(zhuǎn)回圖片
那麼看到這裡,可以理解DirectML主要是用來(lái)套用已經(jīng)訓(xùn)練過(guò)的模型
在建立卷積運(yùn)算以及權(quán)重張量之前,它從weights.bin這個(gè)檔案讀取了所有的權(quán)重資料
Yare yare daze
身為一個(gè)ML小白,這邊的資訊量實(shí)在夠多了
如果分工合作,另一個(gè)同事專門做訓(xùn)練,我來(lái)套用到繪圖端的話這樣也許就可以了
但是要原創(chuàng)什麼想法的話,不弄清楚那個(gè)weights.bin怎麼來(lái)的是不行的
明年的學(xué)習(xí)日目標(biāo)看來(lái)很明確了,之後繼續(xù)來(lái)學(xué)訓(xùn)練的過(guò)程是怎樣的~