gpt4 book ai didi

python - 如何在 Keras 中调整(插值)张量?

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:52 24 4
gpt4 key购买 nike

我想通过插值(比如使用最近的邻居)将大小为(无、2、7、512)的张量(层之间)调整为(无、2、8、512),类似于此函数tf.image.resize_nearest_neighbor 在 Tensorflow 中可用。

有什么办法吗?

我尝试直接使用 Tensorflow 函数 tf.image.resize_nearest_neighbor 并将张量传递给下一个 Keras 层,但是在下一个层中抛出了这个错误:

AttributeError: 'Tensor' object has no attribute '_keras_history'

我认为这是由于 Tensorflow 张量中缺少某些属性,这是有道理的,因为该层期望传递 Keras 张量。

最佳答案

令人惊讶的是,keras 中没有现有的层/函数可以对张量进行这种插值(正如 xtof54 所指出的)。因此,我使用 lambda 层实现了它,并且运行良好。

    def resize_like(input_tensor, ref_tensor): # resizes input tensor wrt. ref_tensor
H, W = ref_tensor.get_shape()[1], ref_tensor.get_shape()[2]
return tf.image.resize_nearest_neighbor(input_tensor, [H.value, W.value])

首先,问题是由于在 Keras 层中使用了直接来自 tensorflow 的张量,因为缺少一些附加属性(keras 张量需要)。此外,虽然 Lambda 层非常易于使用,但如果 keras 允许将来在 keras 层中直接使用来自 tensorflow 的张量(如果可能的话),那将非常方便。

关于python - 如何在 Keras 中调整(插值)张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com