¿Cuál es la diferencia entre fit () y fit_generator () en Keras?

Respuestas:

16

En keras, fit()es muy similar al método de ajuste de sklearn, donde pasa una matriz de características como valores x y objetivo como valores y. Pasa todo su conjunto de datos a la vez en el método de ajuste Además, úselo si puede cargar datos completos en su memoria (pequeño conjunto de datos).

En fit_generator(), no pasa las x e y directamente, sino que provienen de un generador . Como está escrito en la documentación de Keras , el generador se utiliza cuando desea evitar datos duplicados cuando se utiliza el multiprocesamiento. Esto es para fines prácticos, cuando tiene un gran conjunto de datos.

Aquí hay un enlace para entender más sobre esto.

Algo que debe saber sobre Keras si planea entrenar un modelo de aprendizaje profundo en un gran conjunto de datos

Como referencia, puede consultar este libro: https://github.com/hktxt/bookshelf/blob/master/Computer%20Science/Deep%20Learning%20with%20Python%2C%20Fran%C3%A7ois%20Chollet.pdf

Ankit Seth
fuente
Hola Ankit, tu enlace deeplearningitalia.com/wp-content/uploads/2017/12/… no funciona. ¿Tienes un enlace de trabajo?
Chidu Murthy
@ChiduMurthy Gracias por la información. He editado el enlace.
Ankit Seth
De acuerdo con la documentación, también podemos pasar generadores para ajustar el método. ¿Entonces todavía no entiendo por qué necesitamos un método fit_generator separado? tensorflow.org/api_docs/python/tf/keras/Model#fit
alyaxey
0

Hay más en la diferencia entre Keras fity lo fit.generatorque parece. Tenía un conjunto de datos que el modelo había aprendido perfectamente fit.generator. Como el conjunto de datos no era demasiado grande, decidí cambiar a en fitlugar de fit.generator. Para mi sorpresa, la curva de aprendizaje estaba por todas partes. Tuve que empezar a afinar desde cero. Adivina la forma en que se actualizan los gradientes en cada función difiere bastante significativamente. Tener cuidado.

agcala
fuente