我试图在张量中创建一些整数,以直观地检查一些操作。但似乎你可以让;真实的";进行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)