Cómo entrenar un modelo de Keras con un gran conjunto de datos y luego ajustarlo con un conjunto de datos más pequeño de interés

Comenzaría por entrenar un modelo en el conjunto de datos grande y optimizarlo hasta que esté satisfecho. Guarde el modelo para su uso posterior. Después de haber entrenado su modelo en el conjunto de datos grande, tiene 2 opciones para ajustar un conjunto de datos más pequeño:

Congelar capas:

Cargue su modelo guardado, congele todas las capas pero la capa de salida, agregue un par de capas completamente conectadas antes de alimentar su capa de salida. La idea es que el ajuste fino en el conjunto de datos más pequeño ocurre en las capas superiores completamente conectadas, y las capas congeladas se utilizan para alimentar las características.

En Keras hay una propiedad entrenable en la clase Layer que, de forma predeterminada, es True; si se establece en False, se bloquearán los pesos. Piense en ello como hacer que la capa sea de solo lectura.

layer.trainable = False

Esta será tu opción más rápida.

Entrena con una tasa de aprendizaje pequeña:

La otra opción es entrenar su modelo completamente en el conjunto de datos más pequeño PERO con una tasa de aprendizaje pequeña (+ – 0.001), asegurándose de que el modelo no desaprenda lo que ha aprendido mientras entrena en el conjunto de datos grande.

Este método será lento, pero probablemente le dará el mejor resultado. Usar SGD es una buena opción, ya que le da control sobre la tasa de aprendizaje y la descomposición .

Juegue y vea lo que funciona para usted.

More Interesting

Veo que la mayoría de las API de Machine Learning están en Python, algunas usan C o C ++ bajo el capó. ¿Por qué los desarrolladores de framework no exponen las API de C ++?

¿Cuál es la diferencia entre machine learning y IOT?

¿Debería Facebook usar el aprendizaje automático para identificar a los usuarios con potencial de convertirse en un asesino en masa?

¿Qué piensan los científicos de los expertos en SEO?

¿Qué es mejor: un tema fundamental de doctorado de ML o uno aplicado?

¿Qué técnicas son útiles para las series de tiempo financieras de minería de datos?

¿Una máquina de máquina virtual de big data ayuda a analizar archivos grandes?

¿Cómo funciona el sistema de recomendación de filtrado basado en contenido por word2vec usando etiquetas?

¿Es posible compilar una función NumPy para TensorFlow como PyAutoDiff para Theano?

¿Qué método de aprendizaje profundo usar para clasificar archivos de texto?

¿Cuál es el impacto de la limitación de la velocidad de la luz en el aprendizaje automático?

¿Cuáles son las cosas tecnológicas que más impactarán en el futuro de los trabajos (aprendizaje automático, aprendizaje profundo, redes neuronales, etc.)?

Intuitivamente, ¿cómo funcionan los multiplicadores de Lagrange en SVM?

¿Por qué las redes neuronales artificiales se usan ampliamente en la clasificación de imágenes?

¿Existe algún proyecto de código abierto que implemente algoritmos de aprendizaje profundo que aproveche la enorme potencia informática paralela de la GPU?