Qual é a diferença entre fit () e fit_generator () no Keras?

Respostas:

16

Em keras, fit()é muito semelhante ao método de ajuste do sklearn, em que você passa a matriz de recursos como valores x e o destino como valores y. Você passa todo o conjunto de dados de uma vez no método de ajuste. Além disso, use-o se você puder carregar dados inteiros na memória (pequeno conjunto de dados).

Em fit_generator(), você não passa os xey diretamente, ao contrário, eles vêm de um gerador . Como está escrito na documentação do keras , o gerador é usado quando você deseja evitar dados duplicados ao usar o multiprocessamento. Isso é para fins práticos, quando você tem um conjunto de dados grande.

Aqui está um link para entender mais sobre isso -

Uma coisa que você deve saber sobre o Keras se planeja treinar um modelo de aprendizado profundo em um grande conjunto de dados

Para referência, consulte este livro - https://github.com/hktxt/bookshelf/blob/master/Computer%20Science/Deep%20Learning%20with%20Python%2C%20Fran%C3%A7ois%20Chollet.pdf

Ankit Seth
fonte
Olá Ankit, o seu link deeplearningitalia.com/wp-content/uploads/2017/12/… não funciona. Você tem um link de trabalho.
Chidu Murthy
@ChiduMurthy Obrigado pela informação. Eu editei o link.
Ankit Seth
De acordo com a documentação, também podemos passar geradores para ajustar o método. Então ainda não entendo por que precisamos de um método fit_generator separado? tensorflow.org/api_docs/python/tf/keras/Model#fit
alyaxey
0

Há mais na diferença entre Keras fite do fit.generatorque aparenta . Eu tinha um conjunto de dados que foi perfeitamente aprendido pelo modelo usando fit.generator. Como o conjunto de dados não era muito grande, decidi mudar parafit vez de fit.generator. Para minha surpresa, a curva de aprendizado estava por todo o lado. Tinha que começar a sintonizar do zero. Acho que a maneira como os gradientes são atualizados em cada função difere bastante. Cuidado.

agcala
fonte