看板 DataScience 關於我們 聯絡資訊
如題,一組深度神經網路是否能同時處理多個影像呢? 這邊指的並非vectorized computing,雖然矩陣化運算效率很高, 但想像一下我們是要即時處理串流影像,所以不可能每次都得先錄10秒影像, 再把每一幀影像一次丟給神經網路,再等攝影機10秒把下批影像傳來。 理論上,一個深度神經網路,任何一層在處理完一張影像,並把資料傳遞給下一層後, 它應該馬上就能繼續接收上一層傳來的資料來處理,而不用等前一張影像跑完接下來的 每一層才能處理下一張。 所以理論上,一個DNN應該是能像一座工廠的流水線一樣,依序同時處理多張圖, 每張圖依序完成處理,而非只能一次批次處理多張圖,每張圖同時完成。 但以往看過的範例都只有vecorized的處理方式, 請問這在tensorflow或keras等框架上要如何實踐呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.187.80.20 ※ 文章網址: https://www.ptt.cc/bbs/deeplearning/M.1520431983.A.10F.html
ssd860505da: 看你model的目的是什麼 03/08 00:06
ssd860505da: 例如seq to seq 03/08 00:06
ssd860505da: 也就是影片對應一段文字敘述 03/08 00:06
ssd860505da: 那你就應該一段影片對一段文字 03/08 00:06
ssd860505da: 多筆資料同時train應該用batch的方法 03/08 00:06
ssd860505da: 你那樣調back propagation出來的結果好像會亂掉? 03/08 00:06
ssd860505da: 以上拙見 03/08 00:06
a75468: 假設機器的資源(GPU)是固定的,而且套件把inference最佳 03/08 00:15
a75468: 化了,假設某張圖進到第三層,如果要去算另外一張圖的第二 03/08 00:19
a75468: 層的話,第一張圖就會卡在第三層等另一張圖(資源固定) 03/08 00:19
a75468: 所以理論上直接讓一張圖跑到底是bottleneck比較小的方法( 03/08 00:20
a75468: ?) 不過我也不熟tf or pytorch的實作 等大大開示 03/08 00:22
aaaba: 去知乎搜尋 tensorflow queue 試試 03/08 00:33
gus2: 在講testing吧,training應不能這樣搞pipeline 03/08 02:05
gus2: 覺得樓樓上講的比較合理,不同模型的圖片大小每層所需計算 03/08 02:07
gus2: 不同,所以實務上不覺得現階段的dl框架有可能做這種優化 03/08 02:09
gus2: 就算hack的出來,感覺太多小細節需要搞定,不一定比較快 03/08 02:12
gus2: 亂猜的 03/08 02:12
Kazimir: 我覺得tf對於提高效率 一般比較往分布式的方向走 03/08 02:46
pipidog: 把你的圖存檔,然後用tf queue做列隊. 讓tf慢慢消化掉. 03/08 04:05
pipidog: 想做到跟影像同步基本上不可能.推理本就需要時間. 03/08 04:05
ThxThx: 原po也許誤解了,真正在運算的是CPU和GPU而不是DNN... 03/08 08:25
ThxThx: 如果有多台運算單元,自然可以增加workers/用pipeline串 03/08 08:25
ThxThx: 起來。 03/08 08:25
ThxThx: 另一種降低latency的方式是降低buffer size 03/08 08:25
followwar: 應該說GPU資源就這多...不如全力把一張處理好... 03/10 00:41
EGsux: 串流影像用 yolo 03/12 18:42
kuarcis: 我覺得沒必要 而且實際上layer並不是水管 03/14 08:45
kuarcis: layer沒有資源獨佔的問題 自然也不需要針對空閒(?)layer 03/14 08:47
kuarcis: 做最佳化 03/14 08:47