Cómo obtuve mi certificación de desarrollador TensorFlow (y cómo la obtengo)

imagen



A principios de mayo, decidí obtener la certificación como desarrollador de TensorFlow. Para esto, desarrollé un programa de capacitación para mejorar mis habilidades y completé las tareas del examen de certificación hace un par de días (3 de junio). Resultó que pasé el examen con éxito.



Déjame decirte cómo lo hice y cómo haces lo mismo.



Espera un momento. ¿Qué es TensorFlow de todos modos?



TensorFlow es un sistema numérico de código abierto que le permite preprocesar y modelar datos (encontrar patrones en ellos, generalmente a través del aprendizaje profundo), así como implementar sus soluciones para todo el mundo.



Google usa TensorFlow para admitir todos sus servicios de aprendizaje automático. Lo más probable es que el dispositivo en el que está leyendo esto haya usado TensorFlow de una forma u otra antes.



Por lo general, escribe código usando TensorFlow en Python muy comprensible (esto es lo que se requiere para el examen) o JavaScript (tensorflow.js), y ejecuta una serie de funciones básicas escritas en C. Estas funciones ejecutan los comandos que describió anteriormente (hacen muchos cálculos numéricos) .



Entonces, ahora sabemos qué es TensorFlow, pero ¿qué es la certificación de desarrollador de TensorFlow? ¿Y por qué te puede interesar?



¿Qué es la certificación de desarrollador TensorFlow?



La certificación de los desarrolladores de TensorFlow , como habrás adivinado, es una forma de demostrar tu capacidad para trabajar con TensorFlow.



Específicamente, su capacidad para usar TensorFlow (versión de Python) al construir modelos de aprendizaje profundo para una serie de tareas diferentes: análisis de regresión, visión por computadora (encontrar patrones en imágenes), procesamiento del lenguaje natural (encontrar patrones en texto) y pronósticos de series de tiempo (predicción de futuro tendencias teniendo en cuenta una serie de eventos pasados).



¿Por qué necesita un certificado de desarrollador TensorFlow?



La primera razón fue divertida. Tenía ganas de enfrentarme a un pequeño desafío en el trabajo y encontrar una excusa para leer el nuevo libro que compré (más sobre eso más adelante).



Pero hay dos buenas razones más:



  1. , , .
  2. .


Hablando de futuros empleadores: según los datos de la página Who's Hiring de Hacker News (una página que enumera las selecciones de trabajo mensuales para desarrolladores de software), parece que TensorFlow está por delante de otros marcos de aprendizaje profundo.



imagen



Comparación de diferentes marcos de aprendizaje profundo basados ​​en la frecuencia de sus menciones en diferentes publicaciones de trabajo en la página Who's Hiring de Hacker News. Nota: desde TensorFlow 2.x, Keras es esencialmente parte de TensorFlow. Nota 2: Debido a las circunstancias globales actuales, la tasa general de reclutamiento de cualquier desarrollador de software está disminuyendo.



Quiero aclarar que un certificado pagado no es garantía de conseguir un trabajo. Sin embargo, en un mundo de aprendizaje en línea donde las habilidades se comercializan, esta es otra forma de mostrar lo que puede hacer.



Creo que esta es una buena adición a la lista existente de proyectos personales en los que ha trabajado: los cursos forman conocimiento fundamental, los proyectos forman conocimiento concreto.



Entonces, ¿cómo se hace todo esto?



Cómo prepararse para el examen



Cuando pensé que estaba interesado, visité el sitio web del Programa de certificación y leí la Guía de certificación para desarrolladores de TensorFlow.



A partir de estos dos recursos, construí un plan de estudios.



El plan de estudios refleja lo que estudié para desarrollar las habilidades necesarias para aprobar el examen.



Cabe señalar que antes de comenzar a prepararme para el examen, tenía experiencia práctica en la construcción de varios proyectos con TensorFlow.



Un practicante experimentado de TensorFlow o de aprendizaje profundo probablemente podrá completar el próximo programa de entrenamiento aproximadamente al mismo ritmo (3 semanas en total) que yo (posiblemente más rápido).



Un principiante puede pasar tanto tiempo como sea necesario. Recuerda: adquirir cualquier habilidad que valga la pena lleva tiempo.



Enumeré los términos, el costo (en dólares estadounidenses) y el nivel de utilidad (para el examen) de cada recurso. El momento se basa en mi experiencia.



Si está buscando crear un plan de estudios para usted, le recomendaría algo como la lista de verificación a continuación.



Nota: Los enlaces de afiliados se utilizaron para recursos pagados. Esto no cambiará el precio del recurso para usted, pero si adquiere acceso a uno de los materiales, recibiré una parte de esta cantidad: uso este dinero para crear dichos materiales.



1. Manual de certificación del desarrollador TensorFlow





Tiempo: 1 hora.

Costo: gratis.

Nivel de utilidad: obligatorio.



Este recurso debería ser tu primera parada. Describe los temas que se tratarán en el examen. Léelo y luego léelo de nuevo.



Si es nuevo en TensorFlow y el aprendizaje automático, es probable que lo lea y tenga miedo de una variedad de aspectos. No te preocupes. Los recursos a continuación lo ayudarán a familiarizarse con ellos.



2. TensorFlow Coursera



Tiempo: de 3 semanas (usuario avanzado) a 3 meses (principiante).



Costo: $ 59 por mes después de una prueba gratuita de 7 días, puede solicitar asistencia financiera. Si no puede acceder a Coursera, vea la versión gratuita equivalente en YouTube .



Nivel de utilidad: 10/10.



Este es el recurso más relevante para el examen (y para comenzar a utilizar TensorFlow en general). El oyente atento notará la Guía de certificación de TensorFlow, y los contornos de esta especialización son casi idénticos.



Lo enseñan Lawrence Moroney y Andrew Ng, dos titanes de TensorFlow y machine learning, y si tuviera que elegir un solo recurso para prepararme para el examen, este sería este curso.



Realmente aprecié el breve formato de video y me concentré en ejemplos prácticos lo antes posible. Numerosos archivos de código al final de cada sección serán de gran ayuda para cualquier estudiante que aprenda haciendo.



Sugerencia de ejercicio de programación: no solo complete los espacios en blanco en su código, sino que escriba todo usted mismo.



3. Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow 2nd Edition .





Tiempo: de 3 semanas (lectura de principio a fin, sin ejercicio) a 3 meses (lectura de principio a fin y ejercicios).



Costo: los precios varían en Amazon, pero compré la versión en papel por $ 55. Todo el código se puede ver de forma gratuita en GitHub .



Nivel de utilidad: 7/10 (solo porque algunos capítulos no son relevantes para el examen).



El libro tiene más de 700 páginas y cubre casi todos los aspectos del aprendizaje informático y, por lo tanto, algunos temas que no son de examen. Pero es una lectura obligada para cualquier persona interesada en establecer una base sólida para el futuro del aprendizaje automático, no solo aprobar el examen.



Si es nuevo en el aprendizaje automático, lo más probable es que le resulte difícil leer este libro (al comienzo del viaje). Nuevamente, no se preocupe, no tiene a dónde apresurarse, aprender habilidades útiles lleva tiempo.



Digamos: si quieres tener una idea de la calidad del libro, leí la primera edición por la mañana cuando fui a trabajar como ingeniero de aprendizaje automático. Y puedo decir que lo que leí en el libro fue más útil durante la jornada laboral.



La segunda edición no es diferente, excepto que se ha actualizado para cubrir las últimas herramientas y técnicas, a saber, TensorFlow 2.x, en el que se basa el examen.



Si solo necesita capítulos relevantes para el examen, querrá leer lo siguiente:



  • Capítulo 10: Introducción a las redes neuronales artificiales con Keras
  • Capítulo 11: Entrenamiento de redes neuronales profundas
  • Capítulo 12: Modelos personalizados y entrenamiento con TensorFlow
  • Capítulo 13: Carga y preprocesamiento de datos con TensorFlow
  • Capítulo 14: Visión por computadora profunda usando redes neuronales convolucionales
  • Capítulo 15: Procesamiento de secuencias utilizando redes neuronales recurrentes y convolucionales
  • Capítulo 16: Procesamiento de texto en lenguaje natural utilizando redes neuronales recurrentes y atención


Pero para un estudiante serio, sugeriría leer todo el libro y hacer los ejercicios (tal vez no todos, pero los que más le interesan).



4. Una introducción al aprendizaje profundo del MIT



Tiempo: de 3 horas (vi solo 3 conferencias) a un día (1 hora para cada conferencia, más una hora para la revisión).



Costo: gratis.



Nivel de utilidad: 8/10.



Un curso de aprendizaje profundo de clase mundial de una universidad de clase mundial. ¿Olvidé mencionar que es gratis?



Las primeras 3 conferencias, secciones sobre aprendizaje profundo (descripción general), redes neuronales convolucionales (generalmente usadas para visión por computadora) y redes neuronales recurrentes (generalmente usadas para procesamiento de texto) son las más importantes para el examen.



Pero de nuevo, sería beneficioso para el oyente diligente completar todo el curso.



Asegúrese de revisar los laboratorios y el código que ofrecen en GitHub, especialmente la Introducción a TensorFlow. Nuevamente, no puedo articular completamente la importancia de la autocodificación.



5. Comenzando con PyCharm





Tiempo: 3 horas (dependiendo de la velocidad de su computadora).



Costo: gratis.



Nivel de utilidad: 10/10 (el uso de PyCharm es obligatorio).



La prueba se realiza en PyCharm (una herramienta de desarrollo de Python). Antes del examen, nunca usé PyCharm, y antes de comenzar se sugiere que lo conozca al menos un poco.

Para conocer PyCharm, vi una serie de videos introductorios en YouTube, y fueron bastante directos: "Esto es lo que hace este botón".



Pero las pruebas principales fueron verificar que TensorFlow 2.x funciona sin problemas, además de poder trabajar con redes neuronales profundas en un tiempo razonable (mi MacBook Pro no tiene una GPU Nvidia).



Para probar estos aspectos, copié los siguientes dos manuales de TensorFlow en mi máquina local:



  1. Clasificación de imagen con TensorFlow
  2. Clasificación de texto con TensorFlow


Sin embargo, como veremos a continuación, tan pronto como comencé a tomar el examen, me encontré con un problema.



Adicionalmente



Video de deeplearning.ai en Coursera / YouTube : el examen implica realizar tareas de programación (debe escribir el código Python), pero si desea saber qué sucede detrás del escenario del código que escribe (álgebra lineal, cálculo), miraría estos videos siempre que sea posible. Por ejemplo, si no sabe qué es el descenso de gradiente de mini lotes, busque “Tejido de descenso de gradiente de mini lotes”.



Documentación de TensorFlow : si va a convertirse en un practicante de TensorFlow, debe poder leer la documentación. Si no entiende algo, escriba el código y coméntelo usted mismo.



Programación con TensorFlow en YouTube (lista de reproducción) Gran parte de la especialización de TensorFlow con Coursera en videos de YouTube es impartida por el mismo profesor.



¿Cómo me preparé para el examen?



Armado con los recursos anteriores, hice un plan en Notion .



imagen



Programa de preparación para la certificación My Notion TensorFlow. Para realizar un seguimiento de lo que hay que hacer, utilicé la técnica kanban, así como varios recursos y notas. Si sigue el enlace, puede hacer su propia copia haciendo clic en el botón "duplicar" en la esquina superior derecha.



Todas las mañanas durante mayo me levanté, escribí, caminé, leí el libro "Aprendizaje automático práctico" durante 1 hora, trabajé con TensorFlow en la práctica durante 2-3 horas (primero vi las conferencias y luego hice todos los ejercicios de codificación en Google Colab), y Al final de cada módulo, vi la conferencia correspondiente "Introducción al aprendizaje profundo" del MIT.



Por ejemplo, tan pronto como terminé la sección de visión por computadora de la especialización práctica en TensorFlow, vi una conferencia sobre redes neuronales convolucionales (un tipo de algoritmo de visión por computadora) del MIT.



Este triple enfoque ha demostrado ser particularmente efectivo.



El concepto estudiado en el libro fue reforzado por ejemplos de código de la especialización Coursera y, en última instancia, resumido por material de video del MIT.



Para tener una idea del momento, comencé a prepararme para el examen el 11 de mayo y lo aprobé el 3 de junio.



Según mis observaciones (en Notion) y según mis marcadores escritos a mano, en promedio estudié 20 páginas por hora y tomé aproximadamente 1 semana de contenido del curso durante 2-3 horas de estudio (sin distracciones).



Finalmente, un par de días antes del examen, descargué PyCharm y me aseguré de que varios de los ejemplos de código que estudié funcionaran en mi máquina local.



Detalles: lo que sucede durante el examen en sí



Entonces, ¿has terminado de entrenar? ¿Ahora que?



Bueno, comencemos con dos factores importantes.



Costo del examen: $ 100 (después de un intento fallido, tendrá que esperar 2 semanas para volver a intentarlo, con cada intento fallido, el tiempo de espera aumentará).



Tiempo: 5 horas. Si no fuera por el error al comienzo del examen, diría que lo habría aprobado fácilmente en 3 horas. Sin embargo, el límite de tiempo aumentado debería darle tiempo suficiente para entrenar modelos de aprendizaje profundo en su computadora (así que asegúrese de que todo funcione antes de que comience el examen).



Como funciona el examen



No voy a revelar mucho aquí porque será deshonesto. Todo lo que tengo que decir es que lea la referencia del desarrollador de TensorFlow y tendrá una comprensión clara de las secciones principales del examen.



Practique cada una de las tecnologías mencionadas en la guía (utilizando los recursos mencionados anteriormente) y estará listo.



Matices del examen



Capacitar modelos : si su computadora no puede capacitar modelos de aprendizaje profundo lo suficientemente rápido (parte del criterio de evaluación es la representación de modelos capacitados), puede capacitarlos en Google Colab usando la GPU en la nube gratuita y luego cargarlos colocándolos en los directorios apropiados para el examen y enviar a través de PyCharm.



Mi intérprete de Python roto : el material de preparación del examen enfatiza que se requiere Python 3.7 para aprobar el examen. Cuando comencé tenía Python 3.7.3. Y por alguna razón, aunque TensorFlow estaba trabajando el día anterior en mi máquina local usando PyCharm, después de comenzar el examen (que crea automáticamente un entorno TensorFlow para usted), las cosas se rompieron.



Es decir, cada vez que ejecuté al menos una línea de código TensorFlow, recibí un error:



RuntimeError: dictionary changed size during iteration


En este momento no estoy seguro de si esta es la versión de TensorFlow que instaló el examen (2.0.0), o la versión específica de Python que tenía (3.7.3).



Sin embargo, después de algunas maldiciones y una búsqueda tumultuosa en las profundidades del viejo hilo de problemas en GitHub , me encontré con una solución extraña que significaba que tendría que cambiar el código fuente de la versión de Python que estaba usando (específicamente la línea 48 de lincache.py ) .



# Previous line 48 of lincache.py
for mod in sys.modules.values():
# Updated line 48 of linecache.py
for mod in list(sys.modules.values()): # added list()


Nota: Esta es una solución rápida, ya que solo se usó durante la duración del examen, por lo que no estoy seguro de si tiene algún beneficio a largo plazo o si tiene alguna consecuencia.



Durante mi búsqueda frenética, también leí que la alternativa es actualizar / reinstalar la versión de TensorFlow que está utilizando en PyCharm (por ejemplo, 2.0.0 -> 2.2.x). Lo intenté, y no funcionó, sin embargo, siendo nuevo en PyCharm, admito que me equivoqué en algo como usuario.



Después de la corrección, pude terminar el examen sin ningún problema.



¿Qué pasará después de que termines el examen?



Recibirá una notificación por correo electrónico cuando / si aprueba el examen. No habrá revisiones, excepto "Felicitaciones, pasaste" o "Lo siento, no pasaste esta vez".



Sin consecuencias negativas, durante el examen recibirá instrucciones bastante claras: aprobará o no (cada vez que presente un modelo, obtendrá una nota).



Si lo pasas, te felicito!



Asegúrese de completar el formulario en el correo electrónico para asegurarse de ser agregado a la Red de desarrolladores certificados de TensorFlow.



Después de aprobar el examen y completar el formulario en el correo electrónico de confirmación, debería poder acceder a la Red de certificación de desarrolladores de Google en un par de semanas .



imagen



Nota: Al momento de escribir, todavía no estaba allí. Tomará 1-2 semanas.



El registro significa que cualquier persona que busque desarrolladores experimentados de TensorFlow podrá encontrarlo según su tipo de certificación, experiencia y región.



Finalmente, dentro de un par de semanas, recibirá un certificado oficial y una insignia de desarrollador de TensorFlow por correo electrónico (aún no he recibido el mío). Puede agregarlos a los proyectos en los que ha estado trabajando.



Preguntas



¿Puedo tomar cursos, leer un libro y practicar por mi cuenta, realmente necesito un certificado?



Por supuesto que puede. Al final, debes apuntar a las habilidades, no a los certificados. La certificación es buena, pero no es obligatoria.



Si dice que el certificado no es obligatorio, ¿por qué lo recibió?



Me gusta tener un desafío y trabajar para enfrentarlo. La cita de una cita (por ejemplo, "Voy a tomar mi examen el 3 de junio") no me dejó más remedio que estudiar.



¿Puedo hacer esto con recursos gratuitos?



Seguro que puede. Puede ir y adquirir todas las habilidades necesarias estudiando la documentación de TensorFlow. De hecho, cuando necesito practicar algo, copio ejemplos de la documentación (cada línea de código), practico entender cada línea y luego trato de repetir lo que vi yo mismo.



¿Por qué no PyTorch?



Amo a PyTorch. Pero no ofrecen certificación, y si lo hicieran, probablemente lo revisaría (por diversión). Además, un usuario experimentado de ambos marcos (PyTorch y TensorFlow) notará que las actualizaciones recientes han hecho que los dos marcos sean muy similares. Además, TensorFlow tiene una ventaja en el mundo corporativo (ver gráfico anterior).



No sé nada sobre el aprendizaje automático, ¿dónde puedo comenzar?



Leer el artículo"5 pasos para el aprendizaje automático para principiantes" .



Aprobé el examen y me registré en la Red de certificación de desarrolladores de Google. ¿Qué debo hacer a continuación?



¡Es hora de crear! Usa las habilidades que has aprendido para crear lo que te gustaría ver en el mundo. Y no olvides compartir tu trabajo, nunca sabes quién lo verá.



¿No mencionaste algo? Siéntase libre de dejar comentarios o hacer preguntas por correo electrónico. Y te responderé.



PD: si prefieres ver videos, hice una versión en video de este artículo.





imagen



Descubra los detalles de cómo obtener una profesión de alto perfil desde cero o subir de nivel en habilidades y salario tomando los cursos en línea pagos de SkillFactory:











All Articles