[問題] 如何在python中訓練好autoencoder?

看板DataScience作者 (hannxnn)時間4月前 (2024/08/05 19:12), 4月前編輯推噓0(002)
留言2則, 2人參與, 2周前最新討論串1/2 (看更多)
ctrl + y 可以刪除一整行,請將不需要的內容刪除 文章分類提示: - 問題: 當你想要問問題時,請使用這個類別。 - 討論: 當你自己已經有答案,但是也想聽聽版友意見時。 - 情報: 當你看到消息時,請使用這個類別。 根據板規規定,做適當的轉換,以及摘錄重要文意。 - 心得: 當你自己想要分享經驗時,請使用這個類別。 (回答並非義務,所以當有人回答時,哪怕句謝謝也好,多多回應,大E可編輯文章) 可以試著把程式碼用網站貼出來唷 https://pastebin.com/ (如果用不到以下框架,如觀念問題請自行視情況刪除作業系統,使用工具等項目) 作業系統:(ex:mac,win10,win8,win7,linux,etc...) 問題類別:(ex:ML,SVM,RL,DL,RNN,CNN,NLP,BD,Vis,etc...) 使用工具:(ex:python,Java,C++,tensorflow,keras,MATLAB,etc...) 問題內容: 大家好, 我最近在做論文相關的研究,需要在Python中訓練一個autoencoder 目前遇到了一些困難,希望能得到大家的幫助 目的是想要將一個21維的數據透過自編碼器的編碼器部分轉換成2維潛在變量 以下是我目前的工作進展和遇到的問題: 1. 我使用了TensorFlow和Keras來搭建autoencoder模型。模型結構如下: - 使用GlorotUniform進行初始化 - 編碼器包含多個層,每個層使用Sigmoid激活函數和L2正則化,並在每層後面加入 Dropout層。具體結構如下: - 第一層:1024個神經元,輸入形狀為21 - 第二層:512個神經元 - 第三層:256個神經元 - 第四層:128個神經元 - 第五層:64個神經元 - 第六層:32個神經元 - 最後一層:2個神經元 - 解碼器結構對稱於編碼器,輸入形狀為2 2. 我使用了SGD優化器和均方誤差(MSE)作為損失函數 3. 訓練過程中,發現模型的重建誤差一直無法降低,訓練結果得到的潛在變量非常集中 ,不像論文中的範例是分散在X軸和Y軸都在0~1之間 我主要的困惑是: - 是否有更好的網絡結構建議? - 是否有一些經驗可以分享,以提高模型的性能? 非常感謝大家的幫助 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.65.118 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1722856345.A.883.html

08/06 05:02, 4月前 , 1F
python版的問題你倒是回一下
08/06 05:02, 1F
我會回覆了 馬上 抱歉 ※ 編輯: hannxnn (114.27.65.118 臺灣), 08/07/2024 21:35:47

12/06 09:56, 2周前 , 2F
你要輸出的數值範圍在哪?
12/06 09:56, 2F
文章代碼(AID): #1ciBEPY3 (DataScience)
文章代碼(AID): #1ciBEPY3 (DataScience)