看板 DataScience 關於我們 聯絡資訊
作業系統: mac,win10 問題類別: ML,CNN 使用工具: python,pytorch,scikit 問題內容: 資料科學板的各位大大好 我目前所訓練的模型是 利用CNN建立出一個迴歸預測模型。 在建置出初步的模型後,想到了兩個問題, 想要跟各位大大請教。 第一個問題是關於數據的標準化 為了避免特徵尺度不同, 導致模型過度的擬合某一個特徵, 所以會對數據進行標準化 目前是使用Scikit的Standler進行這項工作 會將訓練數據集進行fit_transform 然後將得到的數值 套用進測試數據集直接transform 那我目前困惑的點在於,那如果今天模型訓練完成, 那我目前困惑的點在於,那如果今天模型訓練完成, 那我目前困惑的點在於,那如果今天模型訓練完成, 那我目前困惑的點在於,那如果今天模型訓練完成, 我們保存了一個模型,今天直接載入新的數據時, 我們沒有測試數據集了,但我們仍然需要將新的數據進行標準化 那這時我們需要使用的是fit_transform對嗎? 這樣對模型的預測結果會有影響嗎? 第二個問題目前比較頭痛 在於我使用測試模式下進行預測時 發現模型的預測完全不會變動 只要第一次預測某個值,後面預測的值都會一樣 可是在訓練模式下一切都很正常 請問這可能是遭遇到什麼樣的問題呢? 模型訓練時跟測試時的寫法相同 只有在測試前加上 model.eval() with torch.no_grad(): 目前試了很多方法,還是找不到哪邊出錯 請問有大大遇到類似的問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.121.150 ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.121.150 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1550460349.A.B2C.html ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1550460349.A.B2C.html
f496328mm: 為什麼想用 CNN 在回歸上? cnn 一般都用在影像處理02/18 13:14
f496328mm: 為什麼想用 CNN 在回歸上? cnn 一般都用在影像處理02/18 13:14
f496328mm: 而且 cnn 有所謂的 pool,這樣資料怎麼處理會很重要02/18 13:15
因為目前的input是一個二維的矩陣 因此認為使用DNN的話參數會過多而難以學習 因此才想使用CNN進行迴歸預測 目前網路上對於回歸模型的討論很少,所以也不知道有沒有其他的架構可以使用@@ ※ 編輯: karco (140.113.121.150), 02/18/2019 13:19:55
sma1033: 沒有code可參考,也不知道你的train/test流程,連資料02/18 16:40
sma1033: 大概長什麼樣子都不知道,難道是要人幫忙隔空抓藥?02/18 16:41
大大抱歉 沒有附上程式碼的原因是因為 訓練模型時並沒有遇到問題 而是在切換成model.eval()時才出現 並且將訓練數據集放進測試數據集時問題還是一樣 因此我第一時間就判斷是在eval出現問題 而非數據處理相關 所以我認為可能是一個比較大眾的pytorch問題 才沒有特別上傳程式碼 十分不好意思@@ 然後這問題我暫時解決了 下午在pytorch的論壇上發現了此篇 下午在pytorch的論壇上發現了此篇 https://discuss.pytorch.org/t/performance-highly-degraded-when-eval-is-activated-in-the-test-phase/3323/4 照著回覆中的設定 將BN層 track_running_stats設成false後就正常運行了 所以問題應該是發生在單獨的model.eval()前 還要手動將bn層的設置關閉 只是這樣的設置 雖然有效 但不知道是否合理(? 因為看論壇後續的回覆 似乎也是眾說紛紜 所以還是希望可以跟各位大大進行討論 ※ 編輯: karco (39.12.138.80), 02/18/2019 17:54:14
f496328mm: 網路上對於回歸模型的討論應該超多02/18 18:54
網路上我找到的迴歸討論 都在初步的線性迴歸模型而已 許多書籍的介紹也是 基本上都是重複的介紹@@ CNN進行迴歸問題目前只看到了幾篇論文 請問大大是否有推薦的網路資源 因為我真的沒找到很多 ※ 編輯: karco (39.12.138.80), 02/18/2019 19:07:15 ※ 編輯: karco (39.12.138.80), 02/18/2019 19:07:15
f496328mm: 你可以用 XGBoost 試試,在kaggle上,這跟DL平起平坐02/18 19:27
好的 我會研究看看 感謝建議 ※ 編輯: karco (39.12.138.80), 02/18/2019 20:11:36
supermmi: 你第二個問題我遇過,忘了怎解掉,印像是訓練的參數和 07/05 13:16
supermmi: 測試時的參數不一致 07/05 13:16
supermmi: 回一下前面推文,CNN也可用在非影像,如時間序列資料, 07/05 13:19
supermmi: 用一維卷積。我的經驗是效果還不錯 07/05 13:19
supermmi: cnn用迴歸很簡單,我的做法是把最後一層softmax換成迴 07/05 13:24
supermmi: 歸函數就行了,麻煩的是怎解釋輸出結果 07/05 13:24