我的目标是在 Matlab 中训练一个自动编码器。我正在使用深度学习工具箱。我是自动编码器和 Matlab 的新手,所以如果问题微不足道,请耐心等待。
我的输入数据集是 2000 个时间序列的列表,每个时间序列的每个时间组件有 501 个条目。因此,我的输入数据集被存储到一个名为 inputdata
的数组中,该数组的维度为 2000*501。
自动编码器应重现时间序列。Thi 表示输出应该是 2000 次 501 个分量的时间序列。因此,我的理解是输入节点应该是 501,输出节点也应该是这样。
但是,如果我这样做:
hiddenSize = 100;
autoenc = trainAutoencoder(y_sorted,hiddenSize);
为了训练隐藏层中有 100 个节点的自动编码器,我认为自动编码器会自动选择有 2000 个输入节点。训练此自动编码器的正确方法是什么?
还没有尝试使用深度学习工具箱自己训练自动编码器,但据我在这里(https://www.mathworks.com/help/deeplearning/ref/trainautoencoder.html?s_tid=doc_ta(阅读,您的输入矩阵应该将样本作为列,并在行中具有时间序列的特征/值。您可以通过转置输入矩阵轻松完成此操作。在 MATLAB 中,这是通过以下方式完成的:
inputdata = inputdata.'