![](/img/trans.png)
[英]TypeError from "tf.keras.layers.concatenate": The added layer must be an instance of class Layer. Found: Tensor
[英]Use tf.keras.layers.concatenate() as custom layer in tensorflow
我想在 tensorflow 中使用自定义层制作 U-net。 我需要在那里使用 tf.keras.layers.concatenate ,这就是我的问题。 我可以在方法调用中添加到层的所有其他层的输入张量。 但是连接层的语法是 tf.keras.layers.concatenate(input,axis),我需要这样的东西 tf.keras.layers.concatenate(axis)(input),但它不起作用。 有人可以帮我吗?
谢谢你。
我的代码是这样的:
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
在这里提供解决方案(答案部分),即使它出现在评论部分,也是为了社区的利益。
将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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.