如何使用TensorFlow實現自定義層?


TensorFlow可以透過建立一個類並定義一個構建層的函式以及另一個透過傳遞輸入來呼叫矩陣乘法的函式來實現自定義層。

閱讀更多: 什麼是TensorFlow以及Keras如何與TensorFlow一起建立神經網路?

包含至少一層卷積層的神經網路被稱為卷積神經網路。我們可以使用卷積神經網路構建學習模型。

影像分類遷移學習背後的直覺是,如果一個模型在一個大型且通用的資料集上進行訓練,那麼這個模型可以有效地作為視覺世界的通用模型。它已經學習了特徵圖,這意味著使用者不必從頭開始訓練大型資料集上的大型模型。

TensorFlow Hub是一個包含預訓練TensorFlow模型的儲存庫。TensorFlow可用於微調學習模型。我們將瞭解如何使用來自TensorFlow Hub的模型與tf.keras,使用來自TensorFlow Hub的影像分類模型。完成此操作後,可以執行遷移學習來微調自定義影像類的模型。這是透過使用預訓練的分類器模型來獲取影像並預測它是做什麼的。這可以在無需任何訓練的情況下完成。

我們使用Google Colaboratory執行以下程式碼。Google Colab或Colaboratory幫助在瀏覽器上執行Python程式碼,無需任何配置即可免費訪問GPU(圖形處理單元)。Colaboratory構建在Jupyter Notebook之上。

示例

print("Implementing custom layers")
class MyDenseLayer(tf.keras.layers.Layer):
   def __init__(self, num_outputs):
      super(MyDenseLayer, self).__init__()
      self.num_outputs = num_outputs
   def build(self, input_shape):
      self.kernel = self.add_weight("kernel",
      shape=[int(input_shape[-1]),
      self.num_outputs])
def call(self, input):
return tf.matmul(input, self.kernel)

程式碼來源 −https://www.tensorflow.org/tutorials/customization/custom_layers

輸出

Implementing custom layers

解釋

  • 實現了自定義層。
  • 這是透過建立一個類並將其擴充套件到“tf.keras.layer”來完成的。
  • __init__有助於執行所有輸入無關的初始化。
  • build方法可用於瞭解輸入張量的形狀並完成初始化過程。
  • call方法有助於正向計算。

更新於: 2021年2月25日

瀏覽量:173

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告