Ich versuche mit nolearn zu arbeiten und benutze den ConcatLayer, um mehrere Eingaben zu kombinieren. Es funktioniert gut, solange jeder Eingang den gleichen Typ und die gleiche Form hat. Ich habe drei verschiedene Arten von Eingängen, die schließlich einen einzelnen skalaren Ausgangswert erzeugen.Ich versuche, ConcatLayer mit verschiedenen Formeingaben zu verwenden
Der erste Eingang ist ein Bild von Dimensionen (288,1001)
Der zweite Eingang ist ein Vektor der Länge 87
Der dritte ist ein einzelner skalarer Wert
Ich verwende Conv2DLayer (s) am ersten Eingang. Der zweite Eingang verwendet Conv1DLayer oder DenseLayer (nicht sicher, was wäre besser, da ich es nicht weit genug bekomme, um zu sehen, was passiert) Ich bin nicht einmal sicher, wie der dritte Eingang eingerichtet werden sollte, da es nur eine einzige ist Wert, den ich in das Netzwerk einspeisen möchte.
Der Code bläst am ConcatLayer oben mit: :
Es wäre für immer dankbar ‚Mismatch Eingabeformen gleich, außer in der Verkettung Achse sein muss‘, wenn jemand eine super einfach Netzwerkstruktur ausschreiben könnte das kann diese Arten von Eingaben annehmen und einen einzelnen Skalarwert ausgeben. Ich habe den ganzen Tag gegoogelt und kann das einfach nicht herausfinden.
Die Fit-Funktion sieht wie folgt aus, wenn es hilfreich zu wissen, wie man sehen kann ich für jede Art von Eingabe ein Wörterbuch mit einem Gegenstand am Eingabe:
X = {'base_input': X_base, 'header_input': X_headers, 'time_input':X_time}
net.fit(X, y)
Aus irgendeinem Grund kam mir nicht in den Sinn, dass ich mit DenseLayer umgestalten könnte. Ich denke, ich dachte, dass die Bibliothek einen Weg haben würde, die Verschmelzung zu machen, aber bei weiterer Betrachtung wurde mir klar, dass ein solcher Prozess wahrscheinlich nicht mit vernünftigen Vorgaben verallgemeinert werden konnte. Was dann offensichtlich machte, dass ich die Schichten bereitstellen musste, die notwendig waren, um sich neu zu formen. Danke für deine sehr hilfreiche Antwort! – Beaker