3

オートエンコーダーを実装したい(正確にスタックされた畳み込みオートエンコーダーにする)

ここでは、最初に各レイヤーを事前トレーニングしてから微調整したいと思います

そこで、各レイヤーの重みの変数を作成しました

元。最初のレイヤーの W_1 = tf.Variable(initial_value, name,trainable=True など)

そして、最初のレイヤーの W_1 を事前トレーニングしました

次に、2 番目のレイヤー (W_2) の重みを事前トレーニングします。

ここでは、2 番目のレイヤーの入力を計算するために W_1 を使用する必要があります。

ただし、W_1 はトレーニング可能であるため、W_1 を直接使用すると、tensorflow が W_1 を一緒にトレーニングする可能性があります。

したがって、W_1 の値を保持するが訓練可能ではない W_1_out を作成する必要があります

正直なところ、このサイトのコードを変更しようとしました

https://github.com/cmgreen210/TensorFlowDeepAutoencoder/blob/master/code/ae/autoencoder.py

102行目で、次のコードで変数を作成します

self[name_w + "_fixed"] = tf.Variable(tf.identity(self[name_w]),
                                            name=name_w + "_fixed",
                                            trainable=False)

ただし、エラーが発生するため、初期化されていない値が使用されます

変数をコピーするが、次のレイヤーを事前トレーニングするためにトレーニングできないようにするにはどうすればよいですか??

4

1 に答える 1