簡體   English   中英

使用 tf.keras.layers.concatenate() 作為 tensorflow 中的自定義層

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM