2016-09-13 6 views
0

Я пытаюсь создать небольшую нейронную сеть в тензорном потоке, и я немного новичок в этом. Я видел это в учебнике (), и все работает нормально, пока не попытаюсь оптимизировать вес (с градиентным спуском), так как я получаю значение Null.Нет Значение при оптимизации данных с градиентным спуском

with tf.Session() as sess: 
x = tf.placeholder("float",[1,3],name="x") 
w = tf.Variable(tf.random_uniform([3,3]),name="w") 
y = tf.matmul(x,w) 
labels = tf.placeholder("float",[1,3],name="labels") 
relu_out = tf.nn.relu(y) 
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(relu_out,labels,name="loss") 
optimizer = tf.train.GradientDescentOptimizer(0.5) 
train_op = optimizer.minimize(cross_entropy) 
e_labels = np.array([[1.0,1.0,0.0]]) 
sess.run(tf.initialize_all_variables()) 
for step in range(10): 
    [out,loss] = sess.run([train_op,cross_entropy],feed_dict={x:np.array([[1.0,2.0,3.0]]),labels: e_labels}) 
print("the result is:",out) 
print("The loss of the function is:",loss) 

До сих пор я изменил значение меток (e_labels) и входные значения (х), но в любом случае я всегда получаю результат None. Мой вопрос: Является ли это Нет? Значение нормальное? Я так не думаю, но если кто-то может сказать мне, я был бы рад узнать, что я могу сделать и как его решить.

+0

Функция вывода и потери оптимизирована, да. Однако у меня все еще есть это сомнение. Спасибо –

ответ

1

Предполагаете, вы имеете в виду, что значение out (то есть первое возвращаемое значение от sess.run([train_op, cross_entropy], ...)) равно None.

Это совершенно нормально: train_op является tf.Operation, и когда вы передаете tf.Operation к tf.Session.run() (со ссылкой на документы) «Соответствующее неправдоподобным значение будет None

Вы можете придумать tf.Operation как функцию с возвращаемым типом void (на языке C или Java). Это то, что вы run() вызывают побочный эффект (т. Е. Обновляете переменные), но он не имеет значимого возвращаемого значения.

+0

Удивительный, тогда не о чем беспокоиться. Большое спасибо @mrry –

Смежные вопросы