python train.py --problem=mnist --save_path=./mnist
Banderas de línea de comando:
save_path
: si está presente, el optimizador se guardará en la ruta especificada cada vez que se mejore el rendimiento de la evaluación.num_epochs
: número de épocas de entrenamiento.log_period
: Épocas antes de que se informe el rendimiento medio y el tiempo.evaluation_period
: Épocas antes de que se evalúe el optimizador.evaluation_epochs
: Número de épocas de evaluación.problem
: Problema sobre el que entrenar. Consulte la sección Problemas a continuación.num_steps
: número de pasos de optimización.unroll_length
: número de pasos de desenrollado para el optimizador.learning_rate
: Tasa de aprendizaje.second_derivatives
: si es true
, el optimizador intentará calcular las segundas derivadas a través de la función de pérdida especificada por el problema. python evaluate.py --problem=mnist --optimizer=L2L --path=./mnist
Banderas de línea de comando:
optimizer
: Adam
o L2L
.path
: ruta al optimizador guardado, solo relevante si se usa el optimizador L2L
.learning_rate
: Tasa de aprendizaje, solo relevante si se utiliza el optimizador Adam
.num_epochs
: número de épocas de evaluación.seed
: Semilla para generación de números aleatorios.problem
: Problema a evaluar. Consulte la sección Problemas a continuación.num_steps
: número de pasos de optimización. Los scripts de capacitación y evaluación admiten los siguientes problemas (consulte util.py
para obtener más detalles):
simple
: función cuadrática de una variable.simple-multi
: Función cuadrática de dos variables, donde una de las variables se optimiza usando un optimizador aprendido y la otra usando Adam.quadratic
: Función cuadrática por lotes de diez variables.mnist
: Clasificación Mnist utilizando una red totalmente conectada de dos capas.cifar
: clasificación Cifar10 utilizando una red neuronal convolucional.cifar-multi
: clasificación Cifar10 utilizando una red neuronal convolucional, donde se utilizan dos optimizadores aprendidos independientes. Uno para optimizar parámetros de capas convolucionales y el otro para parámetros de capas completamente conectadas. Los nuevos problemas se pueden implementar muy fácilmente. Puede ver en train.py
que al método meta_minimize
de la clase MetaOptimizer
se le asigna una función que devuelve la operación de TensorFlow que genera la función de pérdida que queremos minimizar (consulte problems.py
para ver un ejemplo).
Es importante que todas las operaciones con efectos secundarios de Python (por ejemplo, creación de colas) se realicen fuera de la función pasada a meta_minimize
. La función cifar10
en problems.py
es un buen ejemplo de una función de pérdida que utiliza colas de TensorFlow.
Descargo de responsabilidad: este no es un producto oficial de Google.