作者hannxnn (hannxnn)
看板DataScience
标题[问题] 如何在python中训练好autoencoder?
时间Mon Aug 5 19:12:23 2024
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://webptt.com/cn.aspx?n=bbs/DataScience/M.1722856345.A.883.html
1F:→ chang1248w: python版的问题你倒是回一下 08/06 05:02
我会回覆了 马上 抱歉
※ 编辑: hannxnn (114.27.65.118 台湾), 08/07/2024 21:35:47
2F:→ gilingking: 你要输出的数值范围在哪? 12/06 09:56