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

Tensorflow tf.keras创建float类型的随机整数,tensorflow,keras,Tensorflow,Keras,我尝试在张量中创建一些整数,以直观地检查一些操作。但是,似乎您可以生成“实”整数,在这里,像mean这样的运算也被转换为整数 我想得到整数张量的平均值,但平均值应该是一个浮点数。我该怎么做? 例如: 给出: [[[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=(

我尝试在张量中创建一些整数,以直观地检查一些操作。但是,似乎您可以生成“实”整数,在这里,像mean这样的运算也被转换为整数

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

给出:

[[[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)
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)

但是,我希望我能看到这个值是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)
给出:

[[[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)
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)