Ответ 1
Поскольку я вижу, что этому все еще уделяется некоторое внимание, я должен упомянуть, что более новые версии tenorflow не показывают такого поведения, я предлагаю работать с тензорным потоком версии 1.13 или выше.
Я работаю над tensorflow 0.12, и у меня проблема с литьем. Следующий фрагмент кода делает странную вещь:
sess = tf.InteractiveSession()
a = tf.constant(1)
b = tf.cast(a, tf.float32)
print b.eval()
Получаю значение: 6.86574233e-36
Я также попытался использовать tf.to_float()
и tf.saturate_cast
. Оба дали тот же результат.
Пожалуйста, помогите.
Поскольку я вижу, что этому все еще уделяется некоторое внимание, я должен упомянуть, что более новые версии tenorflow не показывают такого поведения, я предлагаю работать с тензорным потоком версии 1.13 или выше.
sess = tf.InteractiveSession()
a = tf.constant(1, tf.int64) <--------
b = tf.cast(a, tf.float32)
print b.eval() # 1.0
Вам нужно объявить dtype
для вашего tf.constant
: https://www.tensorflow.org/api_docs/python/tf/constant
Я проверил код в python3 и python2 для той же версии tensorflow, что и код, кажется, работает правильно, так как в обоих случаях я получил следующий вывод для python2
print b.eval()
1.0
Я бы предложил проверить установку tensorflow или virtualenv.
В вашей программе нет ошибок.
import tensorflow as tf
sess = tf.InteractiveSession()
a = tf.constant(1)
b = tf.cast(a, tf.float32)
print b.eval()
Это онлайн-среда для TF https://codeenv.com/env/run/gXGpnR/
Проверьте свой код для запуска, используйте