Использовать метод UploadStringAsync:
WebClient webClient = new WebClient();
webClient.UploadStringCompleted += (s, e) =>
{
if (e.Error != null)
{
//handle your error here
}
else
{
//post was successful, so do what you need to do here
}
};
webClient.UploadStringAsync(new Uri(yourUri), UriKind.Absolute), "POST", yourParameters);
И ваша модель не будет обновляться:
import tensorflow as tf
w = tf.get_variable('w', initializer=42.)
cost_op = tf.square(w)
train_op = tf.train.GradientDescentOptimizer(0.0).minimize(cost_op)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(10):
_, cost, value = sess.run([train_op, cost_op, w])
print(i, cost, value)
дает
(0, 1764.0, 42.0)
(1, 1764.0, 42.0)
(2, 1764.0, 42.0)
(3, 1764.0, 42.0)
(4, 1764.0, 42.0)
(5, 1764.0, 42.0)
(6, 1764.0, 42.0)
(7, 1764.0, 42.0)
(8, 1764.0, 42.0)
(9, 1764.0, 42.0)
как для AdamOptimizer
, так и для GradientDescentOptimizer
. Мое лучшее предположение - это неградиентное обновление, такое как BatchNorm и / или NaN в ваших данных, вызывающих NaN. Или даже неправильная операция.
Как вы ожидаете получить помощь, не указав свою реализацию в [mcve]?
Patwiw прав!
На самом деле, это потому, что мой код использует tf.log
для неверных данных истины, что приводит к потере -inf
.
lr
, и я уверен, что это связано не с моими данными, потому что если я полностью удалю частьoptimization
, то есть просто распечатаю вывод последнего слоя модели, он не получитNaN
при любых итерациях. – Alpha 14 July 2018 в 01:47