![](/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.