0

この問題は、ここスタックオーバーフローと github で何度も言及されていることは知っていますが、私の場合、問題を解決するものは何もないようです。tensorflow_probability のモジュールを使用して、変分オートエンコーダーを試しています。メソッドを使用してモデルをトレーニングするmodel.fitと、最初のエポックでGradient Do not exist for the weights and biases variables of the decoder when minimizing the loss. 不可解な部分は 2 番目以降のエポックからのもので、すべてが正常に見え、出力が得られます。この問題を解決するために、どんな助けでも大歓迎です。完全を期すために、デコーダと警告が提供されています。

dec_klreg = Sequential([
                  InputLayer(input_shape=[latent_size])]+
                 [Dense(unit, activation='relu') for unit in units[::-1]]+
                 [Dense(2*input_shape),
                  tfpl.DistributionLambda(
                      lambda t: tfd.MultivariateNormalDiag(
                          loc=t[...,:input_shape],
                          scale_diag = tf.math.exp(t[...,input_shape:])
                      )
                  )
]) 

ここに要約があります。

Model: "sequential_4"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_16 (Dense)             (None, 8)                 24        
_________________________________________________________________
dense_17 (Dense)             (None, 16)                144       
_________________________________________________________________
dense_18 (Dense)             (None, 32)                544       
_________________________________________________________________
dense_19 (Dense)             (None, 100)               3300      
_________________________________________________________________
distribution_lambda_3 (Distr multiple                  0         
=================================================================
Total params: 4,012
Trainable params: 4,012
Non-trainable params: 0

そして、ここにフィット方法があります:

    vae_klreg = tf.keras.Model(inputs = enc_klreg.input, outputs = dec_klreg(enc_klreg.output))
    vae_klreg.compile(optimizer= tf.keras.optimizers.Adam(learning_rate=0.001), 
            loss = loss_mcmc_klreg)
    history = vae_klreg.fit(x_train,epochs=100,batch_size=1000,validation_split=0.1)

**enc_klreg はエンコーダです。

警告は次のとおりです。

Epoch 1/100
WARNING:tensorflow:Gradients do not exist for variables ['dense_16/kernel:0', 'dense_16/bias:0', 'dense_17/kernel:0', 'dense_17/bias:0', 'dense_18/kernel:0', 'dense_18/bias:0', 'dense_19/kernel:0', 'dense_19/bias:0'] when minimizing the loss.
WARNING:tensorflow:Gradients do not exist for variables ['dense_16/kernel:0', 'dense_16/bias:0', 'dense_17/kernel:0', 'dense_17/bias:0', 'dense_18/kernel:0', 'dense_18/bias:0', 'dense_19/kernel:0', 'dense_19/bias:0'] when minimizing the loss.
9/9 [==============================] - 1s 39ms/step - loss: 1858.8081 - val_loss: 458.4520
Epoch 2/100
9/9 [==============================] - 0s 6ms/step - loss: 411.9823 - val_loss: 273.5398
Epoch 3/100
9/9 [==============================] - 0s 6ms/step - loss: 281.3841 - val_loss: 208.0804
4

0 に答える 0