我想使用tensorflow中的自定义层来制作U-net。我需要在那里使用tf.keras.layers.concatenate,这是我的问题。输入所有其他层的张量,我可以在方法调用中添加到层。但是级联层的语法是tf.keras.layers.concatenate(输入,轴),我需要类似于tf.keras.layers.concatenate( axis) (输入)的语法,但是它不能工作。有人能帮我吗?
谢谢。
我的代码是这样的:
class MyModel(tf.keras.Model):
def __init__(self):
super(MyModel, self).__init__()
self.block1 = Conv2D(.....)
self.block2 = BatchNormalization()
....etc.....
self.decoder_concat = tf.keras.layers.concatenate(axis=-1) #that i need but it does not work
def call(self, inputs):
x = self.block1(inputs)
x = self.block2(x)
....etc......
x = self.decoder_concat([x, concatLayer]) #that i need but it does not work
发布于 2020-05-05 10:30:05
在这里提供解决方案(答案部分),即使它存在于评论部分,以造福社区。
在将tf.keras.layers.concatenate
改为tf.keras.layers.Concatenate
之后,解决了这个问题。
tf.keras.layers.Concatenate
用作连接Tensorflow中输入列表的层,其中tf.keras.layers.concatenate
充当连接层的功能接口。请参阅更多细节这里
请参阅下面更新的代码
class MyModel(tf.keras.Model):
def __init__(self):
super(MyModel, self).__init__()
self.block1 = Conv2D(.....)
self.block2 = BatchNormalization()
....etc.....
self.decoder_concat = tf.keras.layers.Concatenate(axis=-1) #that i need but it does not work
def call(self, inputs):
x = self.block1(inputs)
x = self.block2(x)
....etc......
x = self.decoder_concat([x, concatLayer]) #that i need but it does not work
https://stackoverflow.com/questions/60354700
复制相似问题