Python 板


LINE

更新:補充資料集&code 我的資料集是使用 Free Music Archive 參照的方法是像此網址 https://bit.ly/3aoIbUh 只是我想嘗試只用CNN進行分類預測 原始資料如以下,每筆資料的數值都介於 -80~0 [[-33.74863434 -27.84932709 -22.6257019 ... -21.47132492 -19.61938477 -14.22393227] [-16.31633759 -29.69265747 -25.40621376 ... -28.50727081 -11.46302605 -4.04836655] [ -9.1305275 -10.00378227 -28.46733665 ... -23.54629517 -20.91897202 -1.38314819] ... [-63.33175659 -66.34197998 -68.40023804 ... -73.8707428 -68.64536285 -67.72910309] [-67.61167908 -67.59188843 -66.96526337 ... -70.63095856 -74.70448303 -72.90202332] [-71.49047852 -74.54782104 -69.39613342 ... -80. -80. -80. ]] 我所進行的處理是全部取絕對值並標準化到0~1 如下 [[0.42185793] [0.34811659] [0.28282127] ... [0.26839156] [0.24524231] [0.17779915]] [[0.20395422] [0.37115822] [0.31757767] ... [0.35634089] [0.14328783] [0.05060458]] [[0.11413159] [0.12504728] [0.35584171] ... [0.29432869] [0.26148715] [0.01728935]] ... [[0.79164696] [0.82927475] [0.85500298] ... [0.92338428] [0.85806704] [0.84661379]] [[0.84514599] [0.84489861] [0.83706579] ... [0.88288698] [0.93380604] [0.91127529]] [[0.89363098] [0.93184776] [0.86745167] ... [1. ] [1. ] [1. ]] 以下是訓練部分完整程式 result=np.load('specarc_128640_8442.npz') spl=result['spec'] tid=result['trackgenre'] #Onthot Encoding from sklearn.preprocessing import LabelEncoder enc = LabelEncoder() temp=tid enc.fit(temp) temp=enc.transform(temp) print(temp) from sklearn.preprocessing import OneHotEncoder ohe=OneHotEncoder() encoded=ohe.fit(temp.reshape(-1,1)) temp=encoded.transform(temp.reshape(-1,1)).toarray() print(temp) print('length:',len(temp)) #給定特徵值&標籤 labels = temp Features = spl x_train = Features[:8000] y_train = labels[:8000] x_test = Features[8000:] y_test = labels[8000:] x_train=np.abs(x_train) x_test=np.abs(x_test) x_train = x_train.reshape(8000,128,646,1)/80 x_test = x_test.reshape(442,128,646,1)/80 print(x_train.shape) print(x_train[0].shape) print(x_train[0]) model = Sequential() model.add(Conv2D(16, kernel_size=(5,5), activation='relu',kernel_initializer='random_uniform', input_shape=(128,646,1))) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(BatchNormalization()) model.add(Conv2D(8, kernel_size=(5,5), activation='relu', kernel_initializer='random_uniform', input_shape=(64,321,1))) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(BatchNormalization()) model.add(Flatten()) model.add(Dense(16, activation = 'relu')) model.add(Dropout(0.5)) model.add(Dense(9, activation = 'softmax')) opt=optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False) model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy']) print(model.summary()) ===================================================================== (以下原文) 大家好~ 我目前在嘗試用CNN來做圖片的分類,不過遇到了一個問題 就是訓練出來的模型,只會output同一個結果,因此準確度極低 我的資料集總共有9類,每類包含一千張圖片,每張圖片大小是128*646 我的程式碼和訓練結果如圖 https://i.imgur.com/j5t84k1.png (圖裡左下角是實際標籤跟預測的值) 可以看到不管input是什麼,模型output的值都一模一樣 但同一個模型在跑MNIST這個資料集的分類時,是有九成五的效果 不曉得是哪裡出了問題... 我總共嘗試過更改: 初始化方法、最佳化方法、損失函數、或是跑更多個epoch但結果都一樣 不過當我: 把kernel數量設為1 或是把激發函數設為tanh的時候,預測的值就會不同了 (但準確度只能達到兩三成而已) 1.我覺得很疑惑的地方是為什麼kernel數為1時 模型看起來比較有在學習 2.我的圖片中的值的範圍在0~80,都是正數,為何用tanh會避免單一預測結果 (不過可以觀察到tanh的預測結果仍是偏向某個類別) 爬過很多stackoverflow的問題都沒有找到可以解決的方法... 在這裡向大家請教~希望有人可以解惑 另外先謝謝大家的回答! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.223.102.205 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1585225821.A.D46.html
1F:→ watashino: 你model太小了吧,mnist圖大小也才28x28x1 03/26 21:59
2F:→ watashino: 你光是圖片的一個邊都比他大了 03/26 21:59
3F:→ watashino: 另外你說圖片的值都在0到80之間,建議還是做一下normal 03/26 21:59
4F:→ watashino: ization吧就算只是除80意思一下也會好很多 03/26 21:59
5F:→ watashino: 還有就是你的模型長得大概跟你想得不太一樣,基本的東 03/26 21:59
6F:→ watashino: 西先看熟吧 03/26 21:59
感謝建議~ 已經有做過/80,結果是一樣的(只會預測單一類別) 另外不太確定W大所謂的太小是指層數太小還是? 目前使用的模型是參考別人分享同資料集的架構,input大小是128*646, 原模型filter數量是很多,但會有單一結果的問題, 所以我才將filter數減少,發現僅在只有1個filter的時候,預測的類別會不一樣 主要是不太理解為何有這樣的現象
7F:→ watashino: 欸對還有,model連train起來都有問題了不要dropout 03/26 22:00
好的~我再嘗試看看
8F:→ zax5566x2: 你input圖片蠻大的,可以調大filter試試看吧 03/26 22:04
9F:→ zax5566x2: 我說的是filter數量 03/26 22:05
謝謝建議不過目前的狀況是filter>1的時候,會讓模型變成無論input為何, output都是同一個值 有試過無論是4,32,56或更大,都會導致這個結果... 希望大大有理解我的問題 另filter數量1這件事情我將他理解為,只能對圖片產生1種特徵的判別,所以效果當然 不會多好,不曉得有沒有誤會? ※ 編輯: chuneee (61.223.102.205 臺灣), 03/26/2020 23:29:19 ※ 編輯: chuneee (61.223.102.205 臺灣), 03/26/2020 23:32:44
10F:→ watashino: 建議先去翻翻書吧 03/27 01:34
11F:→ watashino: 或看看李弘毅 03/27 01:34
12F:推 karco: 我覺得需要標準化,filter數量也可以調大一點,可以去了解 03/27 02:37
13F:→ karco: filter移動的原理,因為你圖片的長寬不同,所以可以去自己 03/27 02:37
14F:→ karco: 調一下size然後加深一點的效果應該會好一點 03/27 02:37
15F:推 Starcraft2: http://speech.ee.ntu.edu.tw/~tlkagk/courses.html 03/27 04:05
16F:→ Starcraft2: 推李弘毅 可以跟3月剛開始的ML課程 還有看他之前 03/27 04:06
17F:→ Starcraft2: youtube channel上的影片集 03/27 04:06
18F:→ Starcraft2: 林軒田的課也推薦 不過比較從數學跟統計的角度切入 03/27 04:07
感謝大家的提供~ 其實這方面已經有仔細閱讀過幾本Oreilly的書,但會找時間再好好再補一下的 另外是不是我表達能力有問題,大家好像不太理解我的癥結點? 目前的狀況是 1.圖片已經進行標準化 2.filter數量只要設超過1,模型就只會預測同一結果 還是希望有大大能針對這個部分解釋,感謝 ※ 編輯: chuneee (61.223.102.205 臺灣), 03/27/2020 09:07:08
19F:推 empireisme: 不如請妳把程式碼和dataset貼上來 03/27 11:02
20F:→ empireisme: 這樣大家要改也比較好改 03/27 11:02
好的~已補上,希望有幫助 ※ 編輯: chuneee (61.223.102.205 臺灣), 03/27/2020 12:43:05 ※ 編輯: chuneee (61.223.102.205 臺灣), 03/27/2020 12:43:58
21F:推 watashino: 我再強調一次 你應該不知道自己每一層的output shape 03/27 14:36
22F:→ watashino: 是甚麼 03/27 14:36
23F:→ watashino: 你conv接linear那邊從10000多維直接降到16維我不確定是 03/27 14:36
24F:→ watashino: 不是導致了這個原因,可以修的地方很多所以才建議你先 03/27 14:36
25F:→ watashino: 翻書或者是找一個好一點的model跟著做做看 03/27 14:36
26F:推 Ryspon: 把第二個 Conv2D 的 input shape 拿掉試試看 03/28 03:27
感謝提供調整方向,的確在inputshape的部分有點問題,雖然詳細還在重看 但因為我另外還有遇到某些時候padding會有問題,避免Error似乎把模型改的有點問題 換成另一個build model的方法(不使用.add)並加大kernel數量後 就可以正常學習跟預測了,感謝大家的幫助 ※ 編輯: chuneee (36.234.135.138 臺灣), 03/29/2020 21:54:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP