web-dev-qa-db-fra.com

ValueError: la forme doit être au rang 2 mais au rang 1 pour 'MatMul' (op: 'MatMul') avec des formes en entrée: [2], [2,3]

Je suis tellement nouvelles pour Tensorflow. Je recherche déjà les mêmes questions, mais je ne comprends pas. il y a le code. Espérons que vous pouvez m'aider. 

Code:

import tensorflow as tf

w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3,3],stddev=1,seed=1))

x = tf.constant([0.7,0.9])

a = tf.matmul(x, w1)
y = tf.matmul(a, w2)

sess = tf.Session()

sess.run(w1.initializer)
sess.run(w2.initializer)

print(sess.run(y))
sess.close()
4
馮推宇

Dans votre cas, le rang de la variable x est 1. D'où le problème.

Voici la raison pour laquelle vous rencontrez ce problème.

Veuillez vous référer à l’API tensorflow https://www.tensorflow.org/api_docs/python/tf/matmul

tf.matmul (a, b, transpose_a = False, transpose_b = False, adjoint_a = False, adjoint_b = False, a. Is_sparse = False, b_is_sparse = False, nom = Aucun)

Args:

a: Tenseur de type float16, float32, float64, int32, complex64, complex128 et rang> 1.

b: Tenseur avec même type et même rang comme a.

2
solver149