Git Product home page Git Product logo

cnn_image_captioning's People

Contributors

carmenballester avatar noctrog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cnn_image_captioning's Issues

Bucle de entrenamiento

Esciribir el bucle de entrenamiento, con la funcion de perdida y pasando el modelo por los datos de validacion por cada epoch

Crear diccionario

Escribir un script (ej: gen_dict.py) que lea todas las frases del archivo JSON y guarde en un archivo dos diccionarios: uno que convierta de palabras a numeros y otro que convierta de numeros a palabras.

Definir modelo

Crear la clase que contenga a la red neuronal. Con el metodo forward y todo lo necesario para poder usarla y entrenarla.

Cargar datos a partir del dataset

Leer todos los captions, crear un diccionario que asocie cada palabra a un numero. Guardar dicho diccionario.

Escribir un generador de Python (funcion que en vez de return tenga yield) para que cada vez que se cree el generador devuelva las fotos en orden distinto y con frases distintas. Como parametros al generador se le debe el tamaño del batch. Y debe devolver un batch de fotos (entradas) asociadas a un batch de frases (salida esperada, usada para entrenar)

Preprocesar datos

Preprocesar los datos cargados:

  • Imagenes: cambiar tamanio, pasar de 0 a 255 a 0 a 1, convertir en tensor, data augmentation?
  • Texto: pasar frases cargadas a numeros usando el diccionario para poder pasarlas
    por la capa de embedding. Crear tensor para todo el batch.

Crear generador de datos de entrenamiento

Escribir en train.py un generador de datos que devuelva un batch de imagenes con sus frases. Las frases deben de estar en un tensor de batch_size * sequence_length. Y las imágenes deben de estar en un tensor de batch_size * 3 * 224 * 224.

Cada vez que se cree el generador, se tiene que cambiar el orden de las fotos y usar una de las 5 frases del JSON aleatoriamente.

Como ejemplo dejo uno aqui (https://gist.github.com/noctrog/e39effa1ef5dad3e87ecc144085e5842) que escribí para otro proyecto.

Inferencia

Escribir un script que cargue el modelo guardado, lea las fotos que se le pasen por argumento, aplique el modelo a esas fotos y devuelva las salidas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.