почему во время тренировки устанавливаются только нулевые смещения? - PullRequest
0 голосов
/ 11 февраля 2020

Кто-нибудь объясняет причину, по которой во время тренировок в местах смещения присутствуют только нули ?????

train_data=np.array(non_consteled_data222)
test_data=np.array(non_consteled_data222)
print_weights = tf.keras.callbacks.LambdaCallback(on_epoch_end=lambda epoch, logs: print(autoencoder.layers[10].get_weights()))
early_stopping = tf.keras.callbacks.EarlyStopping(patience=15,mode='auto',monitor='val_loss')
autoencoder.fit({'main_input':train_data},{'main_output':test_data},epochs=1000,batch_size=1,callbacks=[early_stopping, print_weights])

и смещения отображаются следующим образом

Train on 10000 samples
Epoch 1/1000
 9986/10000 [============================>.] - ETA: 0s - loss: 1.2531WARNING:tensorflow:Early stopping conditioned on metric `val_loss` which is not available. Available metrics are: loss
[array([[ 0.04418396,  0.09718815,  0.06509767, ..., -0.08258158,
        -0.04137728, -0.02635098],
       [-0.05798168,  0.10809173, -0.08804472, ...,  0.05473133,
         0.10758243,  0.02331964],
       [ 0.08164211,  0.00655604,  0.01100099, ..., -0.05781808,
        -0.0935961 ,  0.04643583],
       ...,
       [ 0.05952457,  0.10624295,  0.057764  , ..., -0.09977948,
        -0.0364738 ,  0.01292781],
       [-0.05471221,  0.09876775, -0.02606663, ...,  0.10430572,
        -0.05373028, -0.10538645],
       [-0.07313187,  0.06518059,  0.01615911, ...,  0.07252979,
        -0.09280436,  0.08314239]], dtype=float32), array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0.], dtype=float32)]
10000/10000 [==============================] - 19s 2ms/sample - loss: 1.2531
Epoch 2/1000
 9999/10000 [============================>.] - ETA: 0s - loss: 1.2530WARNING:tensorflow:Early stopping conditioned on metric `val_loss` which is not available. Available metrics are: loss
[array([[ 0.04418396,  0.09718815,  0.06509767, ..., -0.08258158,
        -0.04137728, -0.02635098],
       [-0.05798168,  0.10809173, -0.08804472, ...,  0.05473133,
         0.10758243,  0.02331964],
       [ 0.08164211,  0.00655604,  0.01100099, ..., -0.05781808,
        -0.0935961 ,  0.04643583],
       ...,
       [ 0.05952457,  0.10624295,  0.057764  , ..., -0.09977948,
        -0.0364738 ,  0.01292781],
       [-0.05471221,  0.09876775, -0.02606663, ...,  0.10430572,
        -0.05373028, -0.10538645],
       [-0.07313187,  0.06518059,  0.01615911, ...,  0.07252979,
        -0.09280436,  0.08314239]], dtype=float32), array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0.], dtype=float32)]
10000/10000 [==============================] - 19s 2ms/sample - loss: 1.2530

Я видел некоторые отвечает на аналогичный вопрос, который говорит, что это вызвано установкой первых переменных в ноль. Но в моем случае даже после эпохи 2 смещения сохраняют нулевые значения. поэтому я хочу выяснить это и решить проблему.

Я должен поблагодарить вас, если вы дадите мне шанс.

...