¿Cómo hacer un mejor uso de GPU para los estimadores TensorFlow?

Estaba usando Tensorflow (versión de CPU) para mi Modelo de Aprendizaje Profundo. Específicamente utilizando DNNRegressor Estimator para entrenamiento, con un conjunto dado de parámetros (estructura de red, capas ocultas, alfa, etc.) Aunque pude reducir la pérdida, pero el modelo tomó mucho tiempo para aprender (aproximadamente 3 días) y fue el momento la toma fue de 9 segundos por paso 100.

introduzca la descripción de la imagen aquí

Me encontré con este artículo: – https://medium.com/towards-data-science/how-to-traine-tensorflow-models-79426dabd304 y descubrí que las GPU pueden ser más rápidas de aprender. Así que tomé p2.xlarge gpu de AWS (GPU de un solo núcleo) introduzca la descripción de la imagen aquí con 4 (vCPU), 12 (ECU) y 61 (MiB).

Pero la velocidad de aprendizaje es la misma en 9 segundos por paso 100. Estoy usando el mismo código que usé para los estimadores en la CPU, porque leí que los estimadores usan la GPU por su cuenta. Aquí está mi salida de comando “nvidia-smi”. introduzca la descripción de la imagen aquí

  • Está mostrando que se está utilizando la memoria de la GPU, pero mi Volatile GPU-Util está al 1%. No es capaz de averiguar, lo que me estoy perdiendo. ¿Está diseñado para funcionar igual o me falta algo, porque los pasos globales por segundo son iguales para la implementación de los estimadores por parte de la CPU y la GPU?
  • ¿Tengo que cambiar algo de forma explícita en DNNRegressor Estimator Code?

Suena como si estuvieras leyendo desde csv y convirtiéndote en un DataFrame de pandas, y luego usando pandas_input_fn de tensorflow. Este es un problema conocido con la implementación de pandas_input_fn. Puede seguir el problema en https://github.com/tensorflow/tensorflow/issues/13530 .

Para combatir esto, puede usar un método diferente para i / o (lectura de TFRecords, por ejemplo). Si desea continuar utilizando pandas y boost sus pasos / segundo, puede reducir su tamaño de lote, aunque esto puede tener consecuencias negativas en la capacidad de aprendizaje de su estimador.