Je suis un chercheur pratique et j'aime tester des solutions viables, j'ai donc tendance à faire beaucoup d'expériences. Par exemple, si je calcule un score de similitude entre les documents, je pourrais vouloir essayer de nombreuses mesures. En fait, pour chaque mesure, je devrais peut-être effectuer plusieurs analyses pour tester l'effet de certains paramètres.
Jusqu'à présent, j'ai suivi les entrées des exécutions et leurs résultats en écrivant les résultats dans des fichiers avec autant d'informations sur les entrées. Le problème est que la récupération d'un résultat spécifique devient parfois un défi, même si j'essaie d'ajouter les informations d'entrée au nom de fichier. J'ai essayé d'utiliser une feuille de calcul avec des liens vers les résultats, mais cela ne fait pas une énorme différence.
Quels outils / processus utilisez-vous pour la tenue de livres de vos expériences?
la source
Réponses:
vous voudrez peut-être consulter http://deeplearning.net/software/jobman/intro.html
il a été conçu pour un apprentissage en profondeur (je suppose), mais il est indépendant de l'application. Il s'agit en fait d'une version API de l'approche SeanEasters
la source
J'ai récemment rencontré un problème similaire: comment gérer l'extraction d'une variété de fonctionnalités d'un grand ensemble de données, sans savoir à l'avance ce que toutes seraient. (Même le calcul répétitif de valeurs moyennes coûterait cher en calcul.) De plus, comment gérer les prédictions en fonction de différents ensembles de fonctionnalités? Autrement dit, si j'ajoutais une nouvelle fonctionnalité, comment saurais-je quels modèles s'entraîner sur de nouvelles fonctionnalités? Cela pourrait rapidement faire boule de neige dans un énorme gâchis.
Ma solution actuelle consiste à tout suivre dans une base de données NoSQL locale (MongoDB). Par exemple, je pourrais avoir une collection
features
, dont chaque entrée a un nom, une description de la façon dont la fonctionnalité a été calculée, le fichier python qui a exécuté l'extraction, etc.De même, une collection
models
comprend des modèles exécutés sur les données. Chaque entrée peut avoir un nom, une liste de fonctionnalités qui ont été utilisées pour former le modèle, ses paramètres éventuels, les valeurs prédites sur un ensemble de tests retenu, des métriques pour la performance du modèle, etc.De mon point de vue, cela présente un certain nombre d'avantages:
D'après votre question, il semble que vous puissiez adapter cette approche au flux de travail de votre problème. Installez Mongo ou une autre base de données de votre choix, puis enregistrez chaque exécution expérimentale, ses entrées, ses résultats et tout ce que vous pourriez souhaiter suivre au cours du projet. Cela devrait être beaucoup plus facile à interroger qu'une feuille de calcul, au moins.
la source