私はtflearnを使って簡単なオートエンコーダーを書いています。オートエンコーダーをエンコーダーとデコーダーに分離する方法(TensorFlow + TFLearn)
net = tflearn.input_data (shape=[None, train.shape [1]])
net = tflearn.fully_connected (net, 500, activation = 'tanh', regularizer = None, name = 'fc_en_1')
#hidden state
net = tflearn.fully_connected (net, 100, activation = 'tanh', regularizer = 'L1', name = 'fc_en_2', weight_decay = 0.0001)
net = tflearn.fully_connected (net, 500, activation = 'tanh', regularizer = None, name = 'fc_de_1')
net = tflearn.fully_connected (net, train.shape [1], activation = 'linear', name = 'fc_de_2')
net = tflearn.regression(net, optimizer='adam', learning_rate=0.01, loss='mean_square', metric='default')
model = tflearn.DNN (net)
モデルはよく訓練されていますが、訓練後に別途エンコーダとデコーダを使いたいと思います。
私はそれをどのように行うことができますか?今私は入力を復元することができ、入力を隠し表現に変換し、任意の隠れ表現から入力を復元できるようにしたい。
ネットワークのトレーニングは実際にはこの問題のポイントではありません。あなたの場合、私は、この自動エンコーダが大きすぎる、層の数を減らすか、またはより多くの正則化を追加しようとすると思います。さらにそれを訓練しようとする。 (より多くの時代) –