Je n'arrive pas à obtenir la valeur du taux d'apprentissage. Ce que je reçois est ci-dessous.

J'ai essayé le modèle pour 200 époques et je veux voir / changer le taux d'apprentissage. N'est-ce pas la bonne façon?

>>> print(ig_cnn_model.optimizer.lr)
<tf.Variable 'lr_6:0' shape=() dtype=float32_ref>
18
user14492 12 avril 2018 à 01:56

4 réponses

Meilleure réponse

Utilisez eval() à partir de keras.backend:

import keras.backend as K
from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(1, input_shape=(1,)))
model.add(Dense(1))
model.compile(loss='mse', optimizer='adam')

print(K.eval(model.optimizer.lr))

Production:

0.001
26
Primusa 6 févr. 2020 à 16:13

La meilleure façon d'obtenir toutes les informations relatives à l'optimiseur serait avec .get_config().

Exemple:

model.compile(optimizer=optimizerF,
                  loss=lossF,
                  metrics=['accuracy'])

model.optimizer.get_config()

>>> {'name': 'Adam', 'learning_rate': 0.001, 'decay': 0.0, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-07, 'amsgrad': False}

Il renvoie un dict avec toutes les informations.

3
eXistanCe 3 sept. 2019 à 20:10

Vous pouvez modifier votre taux d'apprentissage en

from keras.optimizers import Adam

model.compile(optimizer=Adam(lr=0.001), 
              loss='categorical_crossentropy', 
              metrics=['accuracy'])
13
Mimii Cheng 15 avril 2018 à 05:15

Une manière alternative:

  1. créer une instance d'optimiseur

opt = keras.optimizers.SGD ()

  1. obtenir le taux d'apprentissage de l'instance

print ('learning rate = {}'. format (opt.lr.numpy ()))

  1. utiliser l'optimiseur dans le modèle

model.compile (optimiseur = opt, ...)

1
dturvene 1 août 2019 à 21:10