¿Cómo implementar un algoritmo de descenso de gradiente estocástico lineal multivariante en tensorflow?

¿Comencé con una implementación simple del descenso de gradiente lineal variable simple pero no sé extenderlo al algoritmo de descenso de gradiente estocástico multivariado?

Regresión lineal variable única

import tensorflow as tf
import numpy as np

# create random data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.5

# Find values for W that compute y_data = W * x_data 
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
y = W * x_data

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

# Before starting, initialize the variables
init = tf.initialize_all_variables()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in xrange(2001):
    sess.run(train)
    if step % 200 == 0:
        print(step, sess.run(W))

Respuestas a la pregunta(1)

Su respuesta a la pregunta