mega machine learning google estudiar español curso course con automático aprendizaje aplicado machine-learning tensorflow linear-gradients

machine-learning - machine - tensorflow course



Cómo trabajan los graduados en TensorFlow (1)

Citando los documentos para tf.gradients

Construye derivados parciales simbólicos de la suma de ys wrt x en xs.

Entonces, esto debería funcionar:

dc_dw, dc_db = tf.gradients(cost, [W, b])

Aquí, tf.gradients() devuelve el gradiente de cost wrt de cada tensor en el segundo argumento como una lista en el mismo orden.

Lea tf.gradients para más información.

Dado que tengo un modelo lineal como el siguiente me gustaría obtener el vector de gradiente con respecto a W y b.

# tf Graph Input X = tf.placeholder("float") Y = tf.placeholder("float") # Set model weights W = tf.Variable(rng.randn(), name="weight") b = tf.Variable(rng.randn(), name="bias") # Construct a linear model pred = tf.add(tf.mul(X, W), b) # Mean squared error cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)

Sin embargo, si intento algo como esto, el costo es una función del cost(x,y,w,b) y solo quiero gradientes con respecto a w and b :

grads = tf.gradients(cost, tf.all_variable())

Mis marcadores de posición también se incluirán (X e Y). Incluso si obtengo un gradiente con [x,y,w,b] ¿cómo sé qué elemento del gradiente pertenece a cada parámetro, ya que es solo una lista sin nombres a qué parámetro se ha derivado la derivada con respecto a ?

En esta pregunta, estoy usando partes de este código y aprovecho esta pregunta.