optimizer = tf.train.AdamOptimizer(0.001)
train_W = optimizer.minimize(loss, var_list=[W])
train_C = optimizer.minimize(loss, var_list=[C])
"freeze" some variables/scopes in tensorflow: stop_gradient vs passing variables to minimize