gpt4 book ai didi

python - Keras 2.2.4 如何从 Keras 1.x.x 复制 merge()

转载 作者:行者123 更新时间:2023-12-04 17:40:38 28 4
gpt4 key购买 nike

我正在尝试使用 TensorFlow 后端将 Keras 1.x.x 代码转换为 2.2.x。

我在 Keras 1.x.x 中有以下内容,它接受以下输入:

  • org_image 3 个 RGB 颜色 channel 上的 256x256 图像 shape=(256,256,3)
  • mask 1 个黑白颜色 channel 上的 256x256 mask shape=(256,256,1)

我希望将图像与 mask 结合起来,以获得 mask 区域缺失的新裁剪图像。为此,我首先使用 1 - maskmask 取反,其中 1 是一个张量。然后我按元素乘以 org_image * (1 - mask) 以获得新裁剪的图像。 Keras 1.x.x 中的代码如下所示

from keras.layers import Input, merge

input_shape = (256,256,3)

org_img = Input(shape=input_shape)
mask = Input(shape=(input_shape[0], input_shape[1], 1))
input_img = merge([org_img, mask],
mode=lambda x: x[0] * (1 - x[1]),
output_shape=input_shape)

在 Keras 2.2.x 中,引入了一项重大更改,将 merge() 函数替换为 Add()Subtract()Multiply() ...等等。前面的 merge() 具有 mode=lambda x: x[0] * (1 - x[1]) 的便利性,它等于 mode= lambda [org_img, mask]: org_img * (1 - mask).

如何在 Keras 2.2.x 中复制 1 - mask?我需要在 tf.backend.ones 中导入吗?

或者我可能需要 tf.enable_eager_execution()

我对此很陌生,所以我知道很多事情都在我头上。如果有人能澄清我的误解在哪里,我将不胜感激,谢谢!

最佳答案

为自定义函数或 lambda 表达式使用 Lambda 层:

input_img = Lambda(lambda x: x[0] * (1 - x[1]), output_shape=input_shape)([org_img, mask])

如果您使用 tensorflow 作为后端,则 output_shape 是可选的。

其他有用的图层:

  • 连接(轴=...)(list_of_inputs)
  • Add()(list_of_inputs)
  • Multiply()(list_of_inputs)

关于python - Keras 2.2.4 如何从 Keras 1.x.x 复制 merge(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54624043/

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