Pytorch中的自編碼(autoencoder)
本文資料來源:https://www.bilibili.com/video/av15997678/?p=25
什么是自編碼
先壓縮原數據、提取出最有代表性的信息。然后處理后再進行解壓。減少處理壓力
通過對比白色X和黑色X的區別(cost函數),從而不斷提升自編碼模型的能力(也就是還原的准確度)
由於這里只是使用了數據本身,沒有使用label,所以可以說autoencoder是一種無監督學習模型。
實際在使用中,我們先訓練好一個autoencoder模型,然后只取用其前一半,來獲取到壓縮了的特征進行其他的訓練,以達到壓縮特征的目的。
自編碼可以達到類似於PCA的效果
自編碼in Pytorch
- encoder
-
decoder
-
連接成網絡
-
設置優化器和損失函數
autoencoder=AutoEncoder() optimizer=torch.optim.Adam(autoencoder.parameters(),lr=LR) loss_func=mm.MSELoss()
-
搭建網絡,傳入數據
這里的y是壓縮之前的數據,用來在loss function中和decoded對比的
- 設置輸出