"New Neural" ist ein Open-Source-Projekt für neuronale Netzwerke für die MetaTrader 5-Plattform. - Seite 73

 
yu-sha:

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

  • Die XML-Syntax ist überflüssig.[8]
  • Die Größe eines XML-Dokuments ist wesentlich größer als eine binäre Darstellung derselben Daten. Bei groben Schätzungen wird der Wert dieses Faktors mit 1 Größenordnung (Faktor 10) angenommen.
  • Die Größe eines XML-Dokuments ist deutlich größer als die eines Dokuments in alternativen textbasierten Datenübertragungsformaten (z. B.JSON[4],YAML,Protocol Buffers) und insbesondere in Datenformaten, die für einen bestimmten Anwendungsfall optimiert sind.
  • Die Redundanz von XML kann die Effizienz einer Anwendung beeinträchtigen. Die Kosten für die Speicherung, Verarbeitung und Übermittlung von Daten steigen.
  • XML enthält Metadaten (über Feldnamen, Klassennamen, Strukturverschachtelung), und gleichzeitig ist XML als offene Systemkommunikationssprache positioniert. Bei der Übertragung einer großen Anzahl von Objekten desselben Typs (derselben Struktur) zwischen Systemen macht es keinen Sinn, die Metadaten mehrfach zu übertragen, obwohl sie in jeder Instanz der XML-Beschreibung enthalten sind.
  • Für eine große Anzahl von Aufgaben benötigen Sie nicht die volle Leistungsfähigkeit der XML-Syntax und können viel einfachere und effizientere Lösungen verwenden.

Entschuldigung für das Plagiat.
 

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.

her.human:
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

 
yu-sha:

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

 
Urain:

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

 
Yu-sha:

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.

 
her.human:

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

 
yu-sha:

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.

 
Urain:

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

 
yu-sha:

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

Ich bin kein Experte auf diesem Gebiet, aber ich glaube Ihnen, dass es gut wäre.