tf.keras创建float类型的随机整数



我试图在张量中创建一些整数,以直观地检查一些操作。但似乎你可以让;真实的";进行mean等运算的整数也被强制转换为整数。

我想得到一个整数张量的平均值,但这个平均值应该是一个浮点值。我该怎么做?示例:

a=tf.random.uniform(
(2,3,4), minval=0, maxval=3, dtype=tf.int32, seed=None, name=None
)
print(a)
amean=tf.keras.backend.mean(
a, axis=-1, keepdims=False
)
print(amean)

给出:

[[[0 1 2 0]
[1 2 2 0]
[2 2 1 2]]
[[2 2 2 1]
[1 1 2 1]
[1 1 0 2]]], shape=(2, 3, 4), dtype=int32)
tf.Tensor(
[[0 1 1]
[1 1 1]], shape=(2, 3), dtype=int32)

但相反,我希望我可以看到th emean的值为2.5等,而不是向下投射到0和1之间的整数。

在计算平均时,只需将其转换为dtype=tf.float32

a=tf.random.uniform(
(2,3,4), minval=0, maxval=3, dtype=tf.int32, seed=None, name=None
)
print(a)
amean=tf.keras.backend.mean(
tf.cast(a, tf.float32), axis=-1, keepdims=False
)
print(amean)

给出:

tf.Tensor(
[[[1 2 2 0]
[0 2 2 0]
[0 2 2 0]]
[[2 0 0 0]
[2 1 0 1]
[0 0 0 0]]], shape=(2, 3, 4), dtype=int32)
tf.Tensor(
[[1.25 1.   1.  ]
[0.5  1.   0.  ]], shape=(2, 3), dtype=float32)

最新更新