2016-12-12 4 views
0

Я только начал играть с TensorFlow. Я не могу получить tf.nn.softmax, работая с tf.placeholder. Этот кусок кода:TensorFlow - softmax на заполнителе

import tensorflow as tf 
import numpy as np 

shape = [1, 3] 
value = 0. 
probs = tf.constant(value, shape=shape) 
sampling_prob = tf.nn.softmax(probs) 

with tf.Session() as sess: 
    print(sess.run(sampling_prob)) 

ожидаемые, возвращается [[ 0.33333334 0.33333334 0.33333334]]. Но когда я изменить его на:

probs2 = tf.placeholder(tf.float32, shape=shape) 
sampling_prob2 = tf.nn.softmax(probs2) 

with tf.Session() as sess: 
    print(sess.run(sampling_prob2, feed_dict={probs2: np.full(shape, value)})) 

вдруг я получаю [[ 0. 0. 0.]]. Как это возможно?

Запуск на Windows 10, Python 3.5.2, TensorFlow 0.12, CUDA 8.

+0

Он работает правильно для меня, Ubuntu 14.04, Python 2.7, TensorFlow 0.11 Только CPU – martianwars

ответ

0

код отлично работает для меня (Ubuntu, Python 2, TensorFlow 0,11 GPU, CUDA 8). Поддержка Windows TensorFlow действительно новая (через месяц или около того) - похоже, вы можете упомянуть об этом в своих проблемах: https://github.com/tensorflow/tensorflow/issues.