1
respuesta

Error en el código optimizando los pesos en colab

Buenas tardes, he tratado de resolver el error, pero continúa generándose una y otra vez. Como primer paso para solucionarlo instalé TensorFlow, volví a descargar las librerías, con la IA de google traté de solucionar el problema, pero a pesar de ello se generaba nuevamente; también probé utilizando w_b.value().numpy(), y me sigue generando el error, por este motivo paso por aquí para pedir ayuda.

sgd = keras.optimizers.SGD()
w_b = tf.Variable([w,b])
sgd.minimize(lambda: tf.math.reduce_mean((etiquetas - (dataset*w_b[0]+w_b[1]))**2) ,w_b) 
w_b.numpy()

Error:

AttributeError: 'tensorflow.python.framework.ops.EagerTensor' object has no attribute '_unique_id'

Muy agradecido con el apoyo que me puedan prestar.

1 respuesta

¡Hola Jhozmer! Cómo va?

Gracias por compartir tu duda con nosotros. Parece que estás teniendo un error al optimizar los pesos en tu código en Colab. El error que estás viendo, AttributeError: 'tensorflow.python.framework.ops.EagerTensor' object has no attribute '_unique_id', puede tener varias causas posibles.

Una posible solución es asegurarte de que estás utilizando la versión correcta de TensorFlow. A veces, los errores de atributo pueden ocurrir debido a incompatibilidades entre versiones. Te recomendaría verificar la versión de TensorFlow que estás utilizando y asegurarte de que sea compatible con las librerías que estás utilizando en tu código.

Otra posible solución es verificar si estás utilizando los métodos correctos para acceder a los valores de tus variables. En tu código, estás utilizando w_b.numpy() para acceder a los valores de w_b. Sin embargo, parece que w_b es un tensor de TensorFlow y no una variable de NumPy. En lugar de utilizar w_b.numpy(), puedes probar utilizando tf.keras.backend.get_value(w_b) para obtener los valores de w_b.

Aquí está el código actualizado:

sgd = keras.optimizers.SGD()
w_b = tf.Variable([w,b])
sgd.minimize(lambda: tf.math.reduce_mean((etiquetas - (dataset*w_b[0]+w_b[1]))**2) ,w_b) 
tf.keras.backend.get_value(w_b)

Si este post te ayudó, por favor, marca como solucionado ✓.