"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 73
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Der PreProcessor dient genau diesem Zweck
Ob Sie nun 2 oder 100 Neuronen haben, die Datei sieht gleich aus.
Nun, niemand hält Sie davon ab, es grafisch zu tun - schreiben Sie einfach eine grafische Benutzeroberfläche und verwenden Sie sie.
Nun, lassen Sie uns nicht auf den Schultern herumhacken, lassen Sie uns klare Linien ziehen. Es ist keine Tatsache, dass es für andere genauso ist, aber für mich ist die Art des Ladens, die ich oben dargelegt habe, in Bezug auf den Ladealgorithmus offensichtlich:
Lesen einer Zeichenkette, Initialisierung von 3 Objekten vom Typ Schicht,
wir lesen die erste Zeile, rufen dann das erste Schichtobjekt auf, konstruieren den Schichttyp input, initialisieren ein Array von 2 Neuronen.
Lesen Sie die zweite Zeile, rufen Sie dann die zweite Objektschicht auf, konstruieren Sie den Schichttyp mlp, initialisieren Sie das Array mit 2 Neuronen.
Lesen Sie die dritte Zeile, rufen Sie dann das zweite Schichtobjekt auf, konstruieren Sie den Schichttyp mlp, initialisieren Sie das Neuronen-Array mit 1.
Da die Anzahl der Schichten 3 beträgt, beenden wir die Konstruktion in der dritten Zeile und weisen Verbindungen zu.
Dazu gehen wir die Tabelle durch und rufen die erforderlichen Neuronen auf, indem wir ihnen die Links mitteilen, wenn die Tabelle 1 enthält.
Und wie würde der Algorithmus in xml funktionieren?
ZS und der Hauptvorteil ist, dass die Verbindungstabelle binär ist und somit perfekt gebunden werden kann. Die Tabelle für 8 Neuronen passt in einen Ulong. Zwar sind die Partisanen im Allgemeinen umso dicker, je weiter sie in den Wald hineinreichen, doch die Größe bei einer großen Anzahl von Neuronen berechnet sich als
X=N*N/8
wobei N die Anzahl der Neuronen ist,
X ist die Anzahl der Bytes.
Benachteiligungen
Ich schlage XML als Standard für die Speicherung von Konfigurationen, Netzwerken, Einstellungen, ... vor.
Und sie wird nur in der Initialisierungs-/Speicherphase benötigt
Im Arbeitsablauf und erst recht im Lernprozess kann von XML keine Rede sein.
Entschuldigung für das Plagiat.
Ja, aber aus irgendeinem Grund sind Ungeheuer wie Oracle, Microsoft, ... zähneknirschend ihre "binären" (meist kommerziellen) Standards beiseite schieben und sich offenen Standards zuwenden
Die Subtraktion von 10 MBytes XML ist für moderne Computer kein Problem.
Ein MS Word .docx Dokument von 100 MBytes ist nicht einschüchternd?
Wenn das Problem darin besteht, ein Netzwerk aus einer XML-Datei herunterzuladen, dann ist es einfach unrealistisch, es auf solcher Hardware zu trainieren - die Aufgaben sind in ihrer Komplexität nicht vergleichbar
Ich schlage XML als Standard für die Speicherung von Konfigurationen, Netzwerken, Einstellungen, ... vor.
Und sie wird nur in der Initialisierungs-/Speicherphase benötigt.
Im Workflow-Prozess und erst recht in der Lernphase geht es nicht um XML
Bedenken Sie Folgendes: Ihre Datei ist in xml 916 Byte groß und in binärer Darstellung 64 Byte, selbst wenn Sie nicht auf den Header klicken.
7 Kopfvariablen + 1 pro Tabelle = 8 ulong * 8 Bytes = 64
Sehen Sie, Ihre XML-Datei ist 916 Byte groß, während die binäre Darstellung 64 Byte groß ist, selbst wenn Sie den Header nicht anklicken.
7 Kopfvariablen + 1 pro Tabelle = 8 ulong * 8 Bytes = 64
Um diese Seite des Forums zu öffnen, pumpe ich mindestens hundert Kilobytes durch das Internet.
Wir schreiben das Jahr 2012 und ich verwende schon lange nicht mehr eine solche Maßeinheit wie Byte))
P.S.
Ich habe nur meinen Weg vorgeschlagen - die Öffentlichkeit muss entscheiden
Ich schlage XML als Standard für die Speicherung von Konfigurationen, Netzwerken, Einstellungen, ... vor.
Und sie wird nur in der Initialisierungs-/Speicherphase benötigt.
Beim Arbeitsablauf und erst recht bei der Ausbildung geht es nicht um XML.
Um die Netzstruktur zu optimieren, ist es notwendig, die Anzahl der Neuronen und der Verbindungen zu ändern (on the fly).
Ist es möglich, dies zu tun?
Wenn es Ihnen nichts ausmacht, kommentieren Sie bitte Ihre Codes, denn Sie wissen, dass es ohne Kommentare zu lange dauern kann, den Code anderer Leute zu lesen. Ich danke Ihnen.
Um die Struktur des Netzes zu optimieren, ist es notwendig, die Anzahl der Neuronen und der Verbindungen zu ändern.
Ist es möglich, dies zu tun?
Wenn es nicht schwierig ist, kommentieren Sie bitte Ihre Codes, denn es dauert zu lange, die Codes anderer Leute ohne Kommentare zu verstehen. Ich danke Ihnen.
Dies ist eine Frage der Ausbildung. Potenziell ist das möglich, aber ich habe es in der Praxis noch nicht angewendet.
Normalerweise ändert sich die Netzstruktur während des Lernprozesses nicht - nur die adaptiven Parameter werden geändert.
Ihre Definition des Problems ist bereits eine Metaebene, nämlich einen Architekten zu trainieren, der die Netzstruktur so verändert, dass das entstehende Netz erfolgreicher lernt als andere
Codes gepostet "wie sie sind" - für mich selbst gemacht und, wie immer, in Eile, also entschuldigt mich
Auf eine gute Art und Weise sollte alles dort von Knochen wieder aufgebaut werden, nachdem das ganze Projekt ausgearbeitet ist
Ich lade mindestens hundert Kilobytes herunter, um diese Seite des Forums zu öffnen.
Wir schreiben das Jahr 2012 und ich verwende schon lange nicht mehr eine solche Maßeinheit wie Byte))
P.S.
Ich habe nur meine Version angeboten - die Entscheidung liegt bei der Öffentlichkeit.
Machen wir ein Experiment, erstellen Sie einen Xml-Loader für 1000 Neuronen mit 100 Links pro Neuron, und posten Sie die Dateigröße, Struktur, was immer Sie wollen.
Ich kann gerade auf meinen Knien berechnen, wie viel Platz meine Variante 1000*1000/8=~125KB, und Ihre nicht, so kann ich nicht vergleichen...
Wenn Ihre Version akzeptable Abmessungen hat, warum nicht.
Nicht der Punkt, Speicher, und auf der GPU wird schwierig sein, die Wendungen der Objektlogik zu implementieren, habe ich eine ziemlich gute Idee, wie die NS zu implementieren, als eine komplexe Interaktion von Objekten, innerhalb derer es Funktionen der GPU Berechnungen (dies ist über die Mikro-Ebene), aber ich kann mir nicht vorstellen, wie diese komplexen Objekt-Code die ganze NS an die GPU als mehrere FF mit verschiedenen Sätzen von Gewichten (Makro-Ebene) schlüpfen ???
Die Frage ist rhetorisch, aber wenn jemand sie stellt, hätte ich nichts dagegen, sie zu hören.
Deshalb fiel die Wahl auf CUDA und nicht auf das häufigere OpenCL
CUDA-Code ist objektorientiert und Sie können ein auf der CPU erzeugtes Objekt bitweise übergeben
Es gibt einige Feinheiten, aber sie können alle gelöst werden
Aus diesem Grund wurde CUDA dem gängigeren OpenCL vorgezogen.
Der Code in CUDA ist objektorientiert und Sie können das auf der CPU gebildete Objekt bitweise übergeben
Es gibt Feinheiten, die aber alle gelöst werden können