Comme je suis actuellement à l'essai avec la tf.estimateur de l'API, j'aimerais ajouter ma rosée résultats ici aussi. Je ne sais pas encore si l'utilisation de mesures et d'époques paramètres cohérente dans l'ensemble de TensorFlow et donc je suis juste relatifs à la tf.estimateur (spécifiquement tf.estimateur.LinearRegressor) pour l'instant.
Formation étapes définies par num_epochs
: steps
pas explicitement défini
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input)
Commentaire: j'ai mis num_epochs=1
pour la formation et la doc entrée pour numpy_input_fn
me dit "num_epochs: Entier, nombre d'époques pour itérer sur les données. Si None
fonctionnera jamais.". Avec num_epochs=1
dans l'exemple ci-dessus, la formation se déroule exactement x_train.taille/batch_size fois/étapes (dans mon cas, cela a été 175000 étapes x_train
avaient une taille de 700000 et batch_size
a 4).
Formation étapes définies par num_epochs
: steps
explicitement défini plus haut que le nombre de mesures définis implicitement par num_epochs=1
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input, steps=200000)
Commentaire: num_epochs=1
dans mon cas signifie 175000 étapes (x_train.taille/batch_size avec x_train.size=de 700 000 et batch_size=4) et c'est exactement le nombre d'étapes estimator.train
mais les étapes paramètre a été fixé à 200 000 estimator.train(input_fn=train_input, steps=200000)
.
Formation étapes définies par steps
estimator = tf.estimator.LinearRegressor(feature_columns=ft_cols)
train_input = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
estimator.train(input_fn=train_input, steps=1000)
Commentaire: Bien que j'ai mis en num_epochs=1
lors de l'appel d' numpy_input_fn
la formation s'arrête au bout de 1000 mesures. C'est parce qu' steps=1000
en estimator.train(input_fn=train_input, steps=1000)
remplace l' num_epochs=1
en tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1,shuffle=True)
.
Conclusion:
Quel que soit le paramètre (num_epochs
pour tf.estimator.inputs.numpy_input_fn
ou steps
pour estimator.train
) définit la limite inférieure détermine le nombre d'étapes qui sera exécuté à travers.