【问题标题】:Cast KERAS Tensor to K.tf.int32将 KERAS 张量转换为 K.tf.int32
【发布时间】:2018-12-02 05:27:12
【问题描述】:

这是来自自定义 Keras 回调 casted=K.cast((yPred), K.tf.int32)

我绝对需要将 yPred(张量)转换为 int32 类型(转换应用于张量内容,我知道)

不过,K.cast 只允许转换为浮动。

我该如何解决这个问题?

【问题讨论】:

  • K.tf?你试过简单的“int32”吗?
  • 你也试过K.round吗?
  • 很抱歉,它有效。
  • @DanielMöller K.round 可能会返回一个浮点数。如果它要返回一个 int,我们仍然无法使用它。 Keras 不允许您在损失函数中放置 Round

标签: python tensorflow casting keras tensor


【解决方案1】:

如果您的后端是 Tensorflow,则转换为 int 将起作用。

Keras.backend 接口必须是所有可能的后端中最小的公分母。 TensorFlow 的 cast 支持 int。 CNTK,另一个可能的后端,不支持cast转int。

如果您始终计划使用 TensorFlow 作为 Keras 的后端,则转换为 int 将始终有效。

https://www.tensorflow.org/api_docs/python/tf/dtypes/cast

https://cntk.ai/pythondocs/cntk.ops.html

【讨论】:

    【解决方案2】:

    这就是你的做法:

    casted = K.cast(yPred,"int32")
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2020-08-17
    • 2019-03-19
    • 2021-08-25
    • 2020-01-23
    • 2021-05-31
    • 1970-01-01
    相关资源
    最近更新 更多