[問題] numpy維度問題

看板Python作者 (哈囉哈囉)時間5年前 (2020/05/16 11:17), 5年前編輯推噓0(008)
留言8則, 2人參與, 5年前最新討論串1/1
各位前輩好 小的最近在建構CNN時遇到一些問題 當我讀進訓練集N張照片時train.shape會顯示(N,1) train[0][0].shape就會顯示(height ,w 但model要讀資料時會要求資料要是四維的array,網路上好像都找不到能把二維轉成四維 的 試過resize但資料好像會跑掉 想請問各位: 有甚麼方法可以把二維array中的array降維變成4D矩陣,或是有甚麼方法讓CNN網絡能夠 讀? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.67.224 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1589599063.A.E1C.html

05/16 11:54, 5年前 , 1F
train.reshap(-1,3,3,1) 選我正解
05/16 11:54, 1F

05/16 11:55, 5年前 , 2F
抱歉搞錯了XD 我以為你w,h分別為3, channel是1..
05/16 11:55, 2F

05/16 11:57, 5年前 , 3F
應該是你的np array裡面是object, 所以shape才是
05/16 11:57, 3F

05/16 11:59, 5年前 , 4F
你可以用 list comprehension 把裡面的object變arra
05/16 11:59, 4F

05/16 11:59, 5年前 , 5F
i.e train = np.array([i.reshape(w,h,3) for i in
05/16 11:59, 5F

05/16 12:00, 5年前 , 6F
train])
05/16 12:00, 6F

05/16 12:00, 5年前 , 7F
這樣train dim就會變(N,w,h,3)
05/16 12:00, 7F
感謝回覆 但是用list comprehension會回報ValueError: cannot reshape array of siz e 1 into shape (48,140,3) ※ 編輯: grimaceo (223.139.67.224 臺灣), 05/16/2020 12:30:33

05/16 13:11, 5年前 , 8F
那個3代表channel數 先弄清楚你的channel是1(黑白)還3(RGB)
05/16 13:11, 8F
已經解決了 謝謝兩位 ※ 編輯: grimaceo (223.139.67.224 臺灣), 05/16/2020 14:53:11
文章代碼(AID): #1UlrjNuS (Python)
文章代碼(AID): #1UlrjNuS (Python)