Path: blob/master/site/es-419/guide/migrate/metrics_optimizers.ipynb
39061 views
Copyright 2021 The TensorFlow Authors.
Migrar métricas y optimizadores
En TF1, tf.metrics es el namespace de la API para todas las funciones de métricas. Cada una de las métricas es una función que toma label y prediction como parámetros de entrada y devuelve como resultado el tensor de métricas correspondiente. En TF2, tf.keras.metrics contiene todas las funciones y objetos de métricas. El objeto Metric puede usarse con tf.keras.Model y tf.keras.layers.layer para calcular valores de métricas.
Preparación
Empecemos con un par de imports TensorFlow necesarios,
y prepara algunos datos sencillos para la demostración:
TF1: tf.compat.v1.metrics con Estimator
En TF1, las métricas pueden añadirse a EstimatorSpec como eval_metric_ops, y la operación se genera mediante todas las funciones de métricas definidas en tf.metrics. Puedes seguir el ejemplo para ver cómo usar tf.metrics.accuracy.
También se pueden añadir métricas al estimador directamente mediante tf.estimator.add_metrics().
TF2: API de métricas Keras con tf.keras.Model
En TF2, tf.keras.metrics contiene todas las clases y funciones de métricas. Están diseñadas con un estilo OOP y se integran estrechamente con otras APIs tf.keras. Todas las métricas se pueden encontrar en el namespace tf.keras.metrics, y suele haber un mapeo directo entre tf.compat.v1.metrics con tf.keras.metrics.
En el siguiente ejemplo, las métricas se añaden en el método model.compile(). Los usuarios sólo tienen que crear la instancia de métricas, sin especificar la etiqueta ni el tensor de predicción. El modelo Keras dirigirá la salida del modelo y la etiqueta al objeto métrica.
Con la ejecución eager activada, las instancias tf.keras.metrics.Metric pueden usarse directamente para evaluar datos numpy o tensores eager. Los objetos tf.keras.metrics.Metric son contenedores con estado. El valor de la métrica puede actualizarse mediante metric.update_state(y_true, y_pred), y el resultado puede recuperarse mediante metrics.result().
Para obtener más información sobre tf.keras.metrics.Metric, consulta la documentación de la API en tf.keras.metrics.Metric, así como la guía de migración.
Migrar optimizadores TF1.x a optimizadores Keras
Los optimizadores de tf.compat.v1.train, como el optimizador Adam y el optimizador de descenso gradiente, tienen equivalentes en tf.keras.optimizers.
La tabla siguiente resume cómo puedes convertir estos optimizadores heredados en sus equivalentes de Keras. Puedes reemplazar directamente la versión TF1.x por la versión TF2, a menos que se requieran pasos adicionales (como actualizar la tasa de aprendizaje predeterminada).
Ten en cuenta que convertir tus optimizadores puede hacer incompatibles los puntos de verificación previos.
| TF1.x | TF2 | Pasos adicionales |
|---|---|---|
| `tf.v1.train.GradientDescentOptimizer` | `tf.keras.optimizers.SGD` | Ninguno |
| `tf.v1.train.MomentumOptimizer` | `tf.keras.optimizers.SGD` | Incluye el argumento "momentum" |
| `tf.v1.train.AdamOptimizer` | `tf.keras.optimizers.Adam` | Cambia el nombre de los argumentos "beta1" y "beta2" a "beta_1" y "beta_2". |
| `tf.v1.train.RMSPropOptimizer` | `tf.keras.optimizers.RMSprop` | Cambia el nombre del argumento "decay" por "rho". |
| `tf.v1.train.AdadeltaOptimizer` | `tf.keras.optimizers.Adadelta` | Ninguno |
| `tf.v1.train.AdagradOptimizer` | `tf.keras.optimizers.Adagrad` | Ninguno |
| `tf.v1.train.FtrlOptimizer` | `tf.keras.optimizers.Ftrl` | Elimina los argumentos "accum_name" y "linear_name" |
| `tf.contrib.AdamaxOptimizer` | `tf.keras.optimizers.Adamax` | Cambia el nombre de los argumentos "beta1" y "beta2" a "beta_1" y "beta_2". |
| `tf.contrib.Nadam` | `tf.keras.optimizers.Nadam` | Cambia el nombre de los argumentos "beta1" y "beta2" a "beta_1" y "beta_2". |
Nota: En TF2, todos los épsilones (constantes numéricas de estabilidad) ahora están predeterminados a 1e-7 en lugar de 1e-8. Esta diferencia es insignificante en la mayoría de los casos que se usan.
Ver en TensorFlow.org
Ejecutar en Google Colab
Ver código fuente en GitHub
Descargar bloc de notas