Я пытаюсь изучить tensorflow и в настоящее время пытается сделать простую модель логистической регрессии. Вот мой код, который я сшивал из разных примеров, которые я мог найти.логистическая регрессия отладка tenorflow
with tf.Session() as sess:
# Training data
input = tf.constant(tra)
target = tf.constant(np.transpose(data[:,1]).astype(np.float64))
# Set model weights
W = tf.Variable(np.random.randn(10, 1).astype(np.float64))
# Construct model
mat=tf.matmul(input,W)
pred = tf.sigmoid(mat)
# Compute the error
yerror = tf.sub(pred, target)
# We are going to minimize the L2 loss. The L2 loss is the sum of the
# squared error for all our estimates of y. This penalizes large errors
# a lot, but small errors only a little.
loss = tf.nn.l2_loss(yerror)
# Gradient Descent
update_weights = tf.train.GradientDescentOptimizer(0.05).minimize(loss)
# Initializing the variables
tf.initialize_all_variables().run()
for _ in range(50):
# Repeatedly run the operations, updating the TensorFlow variable.
sess.run(update_weights)
print(loss.eval())
Так код работает, но ошибка доза не улучшится после каждого «sess.run (update_weights)» itteration и я попытался с diffrent размеров шага.
Удивительно, если настройка является корректором?
Я немного не уверен, как отлаживать его, так как вычисление всего выполняется при команде запуска. Превосходные данные. Если некоторые из вас могут увидеть, что я делаю неправильно во всей этой сессии, создайте или дайте предложения о том, как я могу отладить это.
Помогите оценить очень.
Благодарим за комментарий несколько вопросов: Могу ли я поставить случайные числа или должен быть случайным гуассианским со средним 0 и std 1? и N в log (N) число возможностей, которые у меня есть, или количество примеров подготовки? –
Если все веса равны нулю, на самом деле не имеет значения, что такое веса, но в противном случае да, вы можете кормить все, что не связано с выходом. «N» относится к числу классов. – drpng