Soy un investigador práctico y me gusta probar soluciones viables, por lo que tiendo a hacer muchos experimentos. Por ejemplo, si estoy calculando un puntaje de similitud entre documentos, me gustaría probar muchas medidas. De hecho, para cada medida podría necesitar hacer varias corridas para probar el efecto de algunos parámetros.
Hasta ahora, he estado rastreando las entradas de ejecución y sus resultados escribiendo los resultados en archivos con tanta información sobre las entradas. El problema es que recuperar un resultado específico se convierte en un desafío a veces, incluso si trato de agregar la información de entrada al nombre del archivo. Intenté usar una hoja de cálculo con enlaces a resultados, pero esto no está haciendo una gran diferencia.
¿Qué herramientas / procesos utilizas para llevar la contabilidad de tus experimentos?
fuente
Respuestas:
es posible que desee ver http://deeplearning.net/software/jobman/intro.html
Fue diseñado para el aprendizaje profundo (supongo), pero es independiente de la aplicación. Es efectivamente una versión API del enfoque SeanEasters
fuente
Recientemente me encontré con un problema similar: cómo administrar la extracción de una variedad de características de un gran conjunto de datos, sin saber de antemano cuáles serían todas. (Incluso calcular valores medios repetidamente sería computacionalmente costoso). Además, ¿cómo manejaría las predicciones basadas en diferentes conjuntos de características? Es decir, si agrego una nueva característica, ¿cómo sabría qué modelos entrenar en nuevas características? Podría rápidamente convertirse en una gran bola de nieve.
Mi solución actual es rastrearlo todo en una base de datos NoSQL local (MongoDB). Por ejemplo, podría tener una colección
features
, cada una de las cuales tiene un nombre, una descripción de cómo se calculó la función, el archivo de Python que ejecutó la extracción, etc.Del mismo modo, una colección
models
incluye modelos ejecutados en los datos. Cada entrada puede tener un nombre, una lista de características que se usaron para entrenar el modelo, sus parámetros eventuales, valores pronosticados en un conjunto de prueba extendido, métricas de cómo se desempeñó el modelo, etc.Desde mi punto de vista, esto tiene una serie de beneficios:
Según su pregunta, parece que podría adaptar este enfoque al flujo de trabajo de su problema. Instale Mongo u otra base de datos de su elección, y luego guarde cada ejecución experimental, sus entradas, sus resultados y cualquier otra cosa que desee rastrear en el transcurso del proyecto. Esto debería ser mucho más fácil de consultar que una hoja de cálculo, como mínimo.
fuente