Also hier ist mein Code für ein vollständiges Verständnis: https://hastebin.com/qigimomika.py .Warum erhalte ich diesen ValueError?
Also im Grunde habe ich ein Problem mit den folgenden Zeilen:
ein bisschen Kontext:
def weight_variable(shape):
initial = tensorflow.truncated_normal(shape, stddev=0.01)
return tensorflow.Variable(initial)
def bias_variable(shape):
initial = tensorflow.constant(0.01, shape=shape)
return tensorflow.Variable(initial)
w_layer1 = weight_variable([4, 32])
b_layer1 = bias_variable([32])
input_layer = tensorflow.placeholder("float", [4])
die Linie, die den Fehler erzeugt:
h_layer1 = tensorflow.add(tensorflow.matmul(input_layer, w_layer1),b_layer1)
Wenn ich den ganzen Code ausführen (was oben ist) erzeugt es den folgenden Wertfehler
ValueError: Shape must be rank 2 but is rank 1 for 'MatMul' (op: 'MatMul')
with input shapes: [4], [4,32].
Jetzt meine Frage: Was passiert und wie kann ich das vermeiden?
Vielen Dank für Ihre Aufmerksamkeit
EDIT: Dank Prune und Ali Abbasi.
Meine Lösung: änderte ich die input_layer zu:
input_layer = tensorflow.placeholder("float", [1, 4])
Das Problem war, dass meine erste Array tensorflow Rang 1 ([4]) und mein zweiten Array Rang 2 ([4, 32]) war. So habe ich diese Zeile:
state = [state]
wobei Zustand der Eingang:
output_layer.eval(feed_dict={input_layer : state})
Zustand war anfangs [1, 2, 3, 4] (Rang 1), jetzt ist es [[1, 2, 3, 4]] (Rang 2).
dank
EDIT2: Ok ich viel seit dem letzten EDIT geändert. Ich habe die Änderungen verloren, um sie aufzunehmen. Wenn Sie meinen Code here sehen möchten, ist es. Ich weiß, es ist unordentlich wie Scheiße. Für jetzt bin ich einfach so glücklich, dass Scheiße funktioniert: "D. Du wirst meinen Code nicht verstehen können, es ist ein totaler Durcheinander, aber ich wollte nur den aktuellen Zustand dokumentieren. Ein großer danke zu Ali Abbasi. D
Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. Wir sollten in der Lage sein, Ihren gesendeten Code in eine Textdatei einzufügen und das beschriebene Problem zu reproduzieren. – Prune
danke für Ihre Antwort. Ich habe es ein wenig geändert, also hoffe ich, dass es auf diese Weise in Ordnung ist. –
Nah genug. Wir sollten in der Lage sein, Ihren gebuchten Code in eine Textdatei einzufügen und das von Ihnen beschriebene Problem zu reproduzieren. Für NNs sollte dies ausreichen. – Prune