En el entrenamiento utilizamos la entrada de ‘longitud fija’ debido a la aceleración del entrenamiento de nuestro modelo. Como tenemos ex. tamaño de lote 128, tenemos muchas secuencias con diferente longitud. Podríamos procesar cada uno de ellos de forma independiente, pero sería muy lento en comparación con el procesamiento de cada uno de ellos a la vez (en paralelo en la GPU). Hay formas muy eficientes de gestionar diferentes secuencias de longitud en TensorFlow, mira aquí para obtener una explicación:
Todo lo anterior se realiza durante el entrenamiento solo para acelerar todo el proceso.
En la etapa de interferencia, tenemos dos opciones:
- ¿Cuál es la posibilidad de que un humano gane el juego de entropía?
- ¿Dónde aprendo Machine Learning?
- ¿Cuáles son algunos marcos de tiempo realistas para dominar diversas habilidades de programación, como el dominio de Python para la ciencia de datos, git, etc.?
- ¿Una red neuronal necesita un nodo de salida para cada cosa que pueda clasificar?
- ¿Qué herramientas están disponibles para extraer PCFG lexicalizados de un corpus analizado?
- Procese cada entrada una por una (sin proceso paralelo)
- Rellene todas las secuencias a la misma longitud y procese en paralelo.
Para el problema de OCR, cuando tengo algo así como 30 líneas para predecir a partir de un documento, uso la opción 2. Incluso para hacer un cálculo inútil (ya que las secuencias de relleno tienen la misma longitud), aún es más rápido que procesar cada una de ellas independientemente .