Semanas 9, 10 y Receso - M4thinking/RLDuckietown GitHub Wiki
SEMANA 9
¿Qué hicimos para comenzar el proyecto?
Se fijaron las fechas importantes para entrega de avances, primer prototipo, bitácoras, entrega final y presentación final. Se repasó en el concepto de aprendizaje reforzado visto en anteriores capacitaciones y se aterrizó esta idea a nuestro proyecto de aprendizaje reforzado para la conducción autónoma mediante una serie de videos introductorios.
Cambios en el equipo
Se profundizó la comunicación entre integrantes y tutores, llegando a diversos acuerdos en la fechas concretadas, para ello se utilizó Doodle. En el caso de los tutores, se conversó a fondo la función de cada uno siendo Enzo el coordinador y Christopher el tutor en la materia.
Qué haremos esta semana
Organizaremos el trabajo próximo con la aplicación Trello especificando tareas concretas, fechas concretas y personas concretas, e instalaremos las librerías necesarias para llevar acabo la implementación de las redes neuronales convolucionales.
Trabajos realizados
El 15/11 realizamos nuestra primera capacitación con Cristopher Gomez, en la cual tratamos los temas de redes neuronales convolucionales y cómo implementarlas con las librerías de TensorFlow y Keras en python.
Dificultades
- Descargar las librerias antes mencionadas fue bastante tedioso, considerando que entre los integrantes del grupo no teniamos los mismos sistemas operativos y/o configuraciones en su computador, además, que existian muchas versiones de la mismas librerías. Esto lo resolvimos con ensayo y error, leyendo la documentación de las librerías.
SEMANA 10
Previo al código
Aprovechando el tiempo después de las capacitaciones, el miércoles 18 instalamos las librerías necesarias, creamos un repositorio Git e investigamos los comandos para guardar los cuadros del simulador como imágenes.
Momento sin corbata
A través de Doodle, nos pusimos de acuerdo en una fecha disponible para poder avanzar en el proyecto y cumplir con las metas de esta semana. Agendamos una reunión el 22/11 donde perfeccionamos el repositorio de Git, así como el Trello usando la metodología japonesa de organización Kanban.
The real working process
Avanzamos con nuestro primer código, adaptando uno de los vistos en las capacitaciones (mov_duckiebot.py) para poder capturar las imágenes y velocidades necesarias para nuestro modelo de aprendizaje. Así nació recorder.py, un programa con la finalidad de obtener los datos requeridos para el entrenamiento del modelo, el cual una vez terminado parcialmente se subió al git para que todos pudieran acceder a los cambios.
Dificultades
- Dar permisos a todos los integrantes sobre el repositorio y poder subir el trabajo realizado desde cualquier computador. Con ayuda de Cristopher logramos tener un repositorio compartido e ir actualizandolo a medida que avanzamos en el proyecto.
- Capturar las imagenes del simulador de una manera fácil de manipular y con los comandos adecuados. Se resolvió a medias, logrando guardar las imagenes en una carpeta cada vez que se inicializaba el programa.
- Sumado al problema con las imagenes, guardar las velocidad también se nos hizó difícil porque no sabíamos la variable que contenia esta informacón dentro de mov_duckiebot.py. Lo que se solucionó imprimiendo muchas de las variables del entorno, hasta dar con la velocidad.
SEMANA DE RECESO
Previo al código
Tuvimos una larga discusión sobre cómo implementar el traspaso de data a variables que se pudieran leer, y con ayuda de Christopher llegamos a la conclusión de que lo mejor sería implementar arreglos que se llenaran iterativamente y que al finalizar el programa se guardara un archivo de texto con las velocidades.
Momento sin corbata
Nos pusimos de acuerdo en juntarnos en dos fechas claras, el 26/11 y 27/11 para trabajar en el programa y en la wiki con fecha de entrega 2/12.
The real working process
Perfeccionamos el código recorder.py para complementarlo con el nuevo archivo reader.py, capaz de almacenar la información en vectores compatibles con la red neuronal. Se comenzó el arquetipo de la red neuronal en un archivo llamado neural.py trabajando por primera vez con las librerías de Tensorflow y Keras, e implementando las primeras capas densas de convolución. Por último, se actualizó el repositorio en git y se trabajó en la wiki.
Trabajos para la próxima reunión
Revisar dimensiones del dataset que utilizaremos para la red neuronal, verificar el correcto funcionamiento de las capas de convolución y el resultado de la última capa de la red con soft max.
Dificultades
- Pensar una forma mas eficiente de capturar las imagenes y asociar su velocidad para su posterior manipulación en la red neuronal, probamos con distintos métodos, como guardar imagenes en arreglos y vectores posiciones en el titulo de las imagenes, pero despues de una larga conversación con Cristopher, nos decidimos por guardar las imagenes con un número, en una carpeta y las velocidades en orden, en un archivo de texto.
- Tuvimos dificultades con las dimensiones del conjunto de entrenamiento y testeo al introducir el dataset a las capas de convolucion de la red neuronal. Resolveremos el problema en futuras reuniones.
Autores de la wiki:
- Sebastián Guzman
- Tamara Han
- Maximiliano Westerhout