张量流tf.cast的怪异行为

时间:2019-06-27 07:58:50

标签: python tensorflow

有人在整数和无符号整数之间出现tf.cast的奇怪行为吗?我运行以下示例(在https://colab.research.google.com上):

import tensorflow as tf

c = tf.constant([5, 6, 7, 8, 9, 10], dtype=tf.int32)
x = tf.cast(c, dtype=tf.uint32)
with tf.Session() as sess:
    x_raw = sess.run(x)
    print(x_raw.dtype)
    print(x_raw)

print(tf.__version__)

并得到结果:

uint32
[0 0 0 0 0 0]
1.14.0-rc1

我是否以错误的方式使用了演员表?还是在TF中进行类型转换有一些错误?

------------------更新------------------

某些人可能已经运行了上面的代码并获得了正确的结果。实际上,当我只运行一次(在笔记本单元中)时,我也得到了正确的信息,但是如果再次运行该单元,这会让您感到惊讶。重新创建事件的更好方法可能是运行以下命令:

import tensorflow as tf

c = tf.constant([5, 6, 7, 8, 9, 10], dtype=tf.int32)
d = tf.constant([5, 6, 7, 8, 9, 10], dtype=tf.int32)
x = tf.cast(c, dtype=tf.uint32)
y = tf.cast(c, dtype=tf.uint32)
with tf.Session() as sess:
    x_raw, y_raw = sess.run([x, y])
    print(x_raw.dtype, y_raw.dtype)
    print(x_raw)
    print(y_raw)

print(tf.__version__)

这样可以保证我的情况下出错。似乎在TF运行时中确实发生了一些恶臭...

0 个答案:

没有答案