作者grimaceo (哈罗哈罗)
看板Python
标题[问题] numpy维度问题
时间Sat May 16 11:17:41 2020
各位前辈好 小的最近在建构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://webptt.com/cn.aspx?n=bbs/Python/M.1589599063.A.E1C.html
1F:→ littlebo1990: train.reshap(-1,3,3,1) 选我正解05/16 11:54
2F:→ littlebo1990: 抱歉搞错了XD 我以为你w,h分别为3, channel是1..05/16 11:55
3F:→ littlebo1990: 应该是你的np array里面是object, 所以shape才是05/16 11:57
4F:→ littlebo1990: 你可以用 list comprehension 把里面的object变arra05/16 11:59
5F:→ littlebo1990: i.e train = np.array([i.reshape(w,h,3) for i in05/16 11:59
6F:→ littlebo1990: train])05/16 12:00
7F:→ littlebo1990: 这样train dim就会变(N,w,h,3)05/16 12:00
感谢回覆 但是用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
8F:→ eooft: 那个3代表channel数 先弄清楚你的channel是1(黑白)还3(RGB)05/16 13:11
已经解决了 谢谢两位
※ 编辑: grimaceo (223.139.67.224 台湾), 05/16/2020 14:53:11