"New Neural" est un projet de moteur de réseau neuronal Open Source pour la plateforme MetaTrader 5. - page 73
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Le préprocesseur sert précisément à cela
Que vous ayez 2 neurones ou 100, le fichier se présente de la même manière
Eh bien, personne ne vous empêche de le faire graphiquement - il suffit d'écrire une interface graphique et de l'utiliser.
Eh bien, ne coupons pas l'épaule, exposons-la en lignes claires. Il n'est pas certain qu'il en soit de même pour les autres, mais pour moi, la façon de charger que j'ai exposée ci-dessus est évidente en termes d'algorithme de chargement :
lire une chaîne de caractères, initialiser 3 objets de type couche,
nous lisons la première ligne, puis appelons l'objet de la première couche, construisons la couche de type input, initialisons le tableau de 2 neurones.
lire la deuxième ligne, puis appeler le deuxième objet couche, construire la couche de type mlp, initialiser le tableau de 2 neurones.
lire la troisième ligne, puis appeler le deuxième objet de couche, construire le type de couche mlp, initialiser le tableau de neurones de 1.
Comme le nombre de couches est de 3, nous terminons la construction de la troisième ligne et attribuons les connexions.
Pour ce faire, nous parcourons le tableau et appelons les neurones requis, en leur indiquant les liens si le tableau contient 1.
Et comment l'algorithme fonctionnerait-il en xml ?
ZS et le principal avantage est que puisque la table de connexion est binaire, elle est parfaitement liable. La table pour 8 neurones tient dans un seul ulong. Il est vrai que plus on avance dans les bois, plus les partisans sont épais en général, la taille avec un grand nombre de neurones est calculée comme suit
X=N*N/8
où N est le nombre de neurones,
X est le nombre d'octets.
Inconvénients
Je propose XML comme norme pour le stockage des configurations, des réseaux, des paramètres, ...
Et il n'est nécessaire que dans les phases d'initialisation/stockage.
Dans le processus de travail, et encore plus dans le processus d'apprentissage, il n'est pas question de XML.
Mes excuses pour le plagiat.
Oui, mais pour certaines raisons, des monstres comme Oracle, Microsoft, ... serrer les dents pour faire disparaître leurs normes "binaires" (généralement commerciales) et se tourner vers les normes ouvertes
La soustraction de 10 MBytes de XML ne pose aucun problème aux ordinateurs modernes.
Un document MS Word .docx de 100 MBytes n'est pas intimidant ?
Si le problème consiste à télécharger un réseau à partir d'un fichier XML, l'entraînement sur un tel matériel est tout simplement irréaliste - les tâches sont d'une complexité incomparable.
Je propose XML comme norme pour le stockage des configurations, des réseaux, des paramètres, ...
Et il n'est nécessaire que dans les phases d'initialisation/stockage.
Dans le processus de travail et encore plus dans la phase d'apprentissage, il ne s'agit pas de XML
Considérez ceci : votre fichier en xml fait 916 octets et en représentation binaire, 64 octets même si vous ne cliquez pas sur l'en-tête.
7 variables d'en-tête + 1 par table = 8 ulong * 8 octets = 64
Regardez, votre fichier xml fait 916 octets, alors que la représentation binaire fait 64 octets, même si vous ne cliquez pas sur l'en-tête.
7 variables d'en-tête + 1 par table = 8 ulong * 8 octets = 64
Pour ouvrir cette page du forum, je pompe à travers l'Internet au moins une centaine de kilobytes.
Nous sommes en 2012 et il y a longtemps que je n'utilise plus l'unité de mesure de l'octet.)
P.S.
J'ai juste suggéré ma façon de faire - c'est au public de décider.
Je propose XML comme norme pour le stockage des configurations, des réseaux, des paramètres, ...
Et il n'est nécessaire que dans les phases d'initialisation/stockage.
Dans le processus de travail, et encore plus dans le processus de formation, il ne s'agit pas de XML.
Pour optimiser la structure du réseau, il est nécessaire de modifier (à la volée) le nombre de neurones et de connexions.
Est-il possible de le faire ?
Si cela ne vous dérange pas, veuillez commenter vos codes, cela peut prendre trop de temps pour comprendre le code de quelqu'un d'autre sans aucun commentaire. Merci.
Pour optimiser la structure du réseau, il est nécessaire de modifier (à la volée) le nombre de neurones et de connexions.
Est-il possible de le faire ?
Si ce n'est pas difficile, veuillez commenter vos codes, vous savez, cela prend trop de temps de comprendre les codes des autres sans commentaires. Merci.
C'est une question de formation. Potentiellement, c'est possible, mais je ne l'ai pas utilisé en pratique.
Habituellement, au cours du processus d'apprentissage, la structure du réseau ne change pas - seuls les paramètres adaptatifs sont modifiés.
Votre définition du problème est déjà un méta-niveau : il s'agit d'entraîner un architecte à modifier la structure du réseau, de sorte que le réseau résultant soit plus performant que les autres en matière d'apprentissage.
Codes postés "tels quels" - faits pour moi et, comme d'habitude, dans la précipitation, donc excusez-moi.
Dans le bon sens du terme, tout ce qui se trouve là-bas devrait être reconstruit par bones une fois que le projet aura été élaboré.
Je télécharge au moins une centaine de kilobytes pour ouvrir cette page du forum.
Nous sommes en 2012 et il y a longtemps que je n'utilise plus d'unité de mesure comme l'octet.)
P.S.
Je n'ai fait que proposer ma version - c'est au public de décider.
Faisons une expérience, créez un chargeur xml pour 1000 neurones avec 100 liens par neurone, et postez la taille du fichier, la structure que vous voulez.
Je peux calculer sur mes genoux combien d'espace ma variante 1000*1000/8=~125 KB, et la vôtre ne le peut pas, donc je ne peux pas comparer...
Si votre version a des dimensions acceptables, pourquoi pas.
Pas le point, la mémoire, et sur le GPU sera difficile de mettre en œuvre les torsions de la logique de l'objet, j'ai une assez bonne idée de la façon de mettre en œuvre le NS, comme une interaction complexe d'objets au sein de laquelle il ya des fonctions de calculs GPU (il s'agit de la micro-niveau), mais je ne peux pas imaginer comment cet objet complexe code ceux NS ensemble de glisser le GPU comme plusieurs FF avec différents ensembles de poids (macro-niveau) ? ???
La question est rhétorique, mais si quelqu'un la présente, cela ne me dérangerait pas d'en entendre parler.
C'est pourquoi le choix s'est porté sur CUDA plutôt que sur OpenCL, plus courant.
Le code CUDA est orienté objet et vous pouvez passer bit à bit un objet généré par le CPU.
Il y a quelques subtilités mais elles peuvent toutes être résolues
C'est pourquoi CUDA a été préféré à OpenCL, plus courant.
Le code dans CUDA est orienté objet et vous pouvez passer bit à bit l'objet formé sur le CPU
Il y a des subtilités, mais elles peuvent toutes être résolues