Python Keras 2.2.4如何从Keras 1.x.x复制merge()
我正在尝试使用TensorFlow后端将Keras1.x.x代码转换为2.2.x 我在Keras 1.x.x中有以下内容,它采用以下输入:Python Keras 2.2.4如何从Keras 1.x.x复制merge(),python,tensorflow,merge,keras,deprecated,Python,Tensorflow,Merge,Keras,Deprecated,我正在尝试使用TensorFlow后端将Keras1.x.x代码转换为2.2.x 我在Keras 1.x.x中有以下内容,它采用以下输入: org\u image3个RGB彩色通道上256x256的图像shape=(256256,3) mask1b/W彩色通道上256x256的掩模shape=(256256,1) 我希望将图像与遮罩相结合,以获得一个新的裁剪图像,其中遮罩区域缺失。为此,我首先使用1-mask取mask的倒数,其中1是1的张量。然后我按元素相乘org_image*(1-mas
3个RGB彩色通道上256x256的图像org\u image
shape=(256256,3)
1b/W彩色通道上256x256的掩模mask
shape=(256256,1)
1-mask
取mask
的倒数,其中1
是1的张量。然后我按元素相乘org_image*(1-mask)
得到新裁剪的图像。Keras 1.x.x中的代码如下所示
从keras.layers导入输入,合并
输入_形状=(256256,3)
org\u img=Input(shape=Input\u shape)
掩码=输入(形状=(输入形状[0],输入形状[1],1))
input\u img=merge([org\u img,mask],
模式=λx:x[0]*(1-x[1]),
输出形状=输入形状)
在Keras 2.2.x中引入了一个突破性的更改,将merge()
函数替换为Add()
,Subtract()
,Multiply()
…等。前面的merge()
具有mode=lambda x:x[0]*(1-x[1])
的便利性,它等于mode=lambda[org\u img,mask]:org\u 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\u shape
是可选的
其他有用的层:
串联(轴=…)(输入列表)
Add()(输入列表)
Multiply()(输入列表)