La copie de nombreuses grandes formules (réseaux neuronaux) entre les tables de données est très, très lenteJ'ai un ensemble de données de 10000 lignes x 100+ colonnes utilisées pour la modélisation du réseau neuronal. J'ai fait 75 modèles différents de 20 nœuds x 100 entrées / nœud et enregistré les formules en utilisant des formules rapides. J'ai 10 tables différentes (même jeu de données, modélisation différente), chacune avec 75 modèles et je veux fusionner tous les modèles (formules) dans une table principale, car je veux appliquer tous les modèles à toutes les nouvelles données que je collecte.
Chaque méthode que j'essaie prend une éternité. J'ai utilisé le complément de copie de formules pour copier les formules de chaque table dans une seule table et cela prend environ 2 jours au total pour terminer toutes les fusions de table et sans aucune indication de progrès, il est difficile de savoir s'il fonctionne toujours ou a congelé.
J'ai utilisé Join en faisant correspondre les lignes avec la suppression de l'évaluation des formules pour les regrouper dans une seule table et c'est rapide. Cependant, lorsque je réactive l'évaluation de formule en sélectionnant manuellement les colonnes de formule et en utilisant Colonnes> Standardiser les attributs> Propriétés de colonne> Formule> Supprimer Eval, le recalcul des 750 formules prend une éternité. Il fonctionne depuis 30 heures (maximum à 12% d'utilisation du processeur) et je n'ai aucune idée de la progression.
J'ai essayé de parcourir les colonnes une à une pour activer l'évaluation des formules, mais même le faire pour 1 colonne a pris plus de 5 minutes, ce qui semble incroyablement long.
Y a-t-il un moyen d'accélérer cela? Je sais qu'il existe des solutions de contournement, mais cela semble être plus facile et plus rapide que cela.
Re: La copie de nombreuses grandes formules (réseaux neuronaux) entre les tables de données est très, très lenteAvec des problèmes «plus importants», il est difficile d'offrir des conseils généraux sur l'efficacité sans connaître certains ou tous les détails. Si vous ne l'avez pas déjà fait, vous pouvez examiner l'impact des messages de table 'Begin Data Update ()' et 'End Data Update ()' et / ou contrôler la façon dont les formules sont évaluées (ou non). FWIW, mon instinct me dit que vous pouvez faire mieux en utilisant le Formula Depot comme intermédiaire. J'ai commencé à écrire du code pour vérifier cela, mais pour les problèmes de cette taille, la modélisation elle-même prend un certain temps, donc je n'ai pas continué dans cette voie:
NamesDefaultToHere(1);
// Define the data volume
nr = 100;
nc = 10;
// Make some random data
dt = AsTable(J(nr, nc, RandomNormal(0, 1)));
dt << setName("Random Data");
// Fit neural and publish prediction formula
cols = dt << getColumnNames("String");
yCol = cols[NItems(cols)];
RemoveFrom(cols, NItems(cols));
nn = dt << Neural(Y(Eval(yCol)), X(Eval(cols)), Fit( NTanH( 3 ) ), Invisible);
nn(Fit(1)) << publishPredictionFormula;
Report(nn) << closeWindow;
Re: La copie de nombreuses grandes formules (réseaux neuronaux) entre les tables de données est très, très lenteSalut Ian,
Merci pour la réponse rapide. Je viens d'essayer la méthode Formula Depot par Add Formula From Column avec toutes les formules et la création du script a été rapide. Lorsque j'ai testé Run Scripts (exécutant 6 scripts) sur une table en double avec les colonnes de formule supprimées, c'était très rapide. Jusqu'ici tout va bien. Lorsque j'ai ensuite essayé d'exécuter tous les scripts sur la même table, cela a commencé rapidement mais s'est progressivement ralenti à mesure que davantage de colonnes étaient créées (je pouvais voir les colonnes en cours de création dans le volet Colonnes). Il a finalement semblé se figer (aucune nouvelle colonne créée en 5 minutes). Hmmmm. Je vais maintenant essayer de le faire en petits lots pour voir si cela aide.
Re: La copie de nombreuses grandes formules (réseaux neuronaux) entre les tables de données est très, très lenteJe me demande si les formules sont toutes recalculées simultanément et se disputent le temps processeur.
Re: La copie de nombreuses grandes formules (réseaux neuronaux) entre les tables de données est très, très lenteJ'ai essayé de faire Run Script à partir du Formula Depot sur 100 formules à la fois. Les 100 premiers sont allés assez vite. Le deuxième 100 a ralenti et a semblé s'arrêter.
J'ai essayé de copier les scripts pour toutes les formules à partir de Formula Depot, en encapsulant << Commencer la mise à jour des données ... << Fin de la mise à jour des données.
J'ai essayé d'exécuter Suppress Eval (0) sur des colonnes de formules copiées avec Suppress Eval (1). J'ai parcouru les colonnes enveloppées dans << Commencer la mise à jour des données .... Col (i) Supprimer Eval (0) ...... Attendre (0) << Fin de la mise à jour des données. J'ai essayé sur 10 colonnes. Ça n'a pas marché.
Jusqu'à présent, rien de ce que j'ai essayé n'a fonctionné plus rapidement que de joindre manuellement les tables par ligne avec l'évaluation de formule activée et cela a pris des jours .....
PS Existe-t-il un moyen de casser un script en cours d'exécution?