如何使用 Keras 和 Embedding 層在 Python 中共享層?
Keras 是作為 ONEIROS 專案(開放式神經電子智慧機器人作業系統)研究的一部分而開發的。Keras 是一個用 Python 編寫的深度學習 API。它是一個高階 API,具有高效的介面,有助於解決機器學習問題。它執行在 TensorFlow 框架之上。它的構建是為了幫助以快速的方式進行實驗。它提供了開發和封裝機器學習解決方案所必需的基本抽象和構建塊。
它具有高度的可擴充套件性,並具有跨平臺功能。這意味著 Keras 可以執行在 TPU 或 GPU 叢集上。Keras 模型還可以匯出到 Web 瀏覽器或手機上執行。
Keras 已經存在於 TensorFlow 包中。可以使用以下程式碼行訪問它:
import tensorflow from tensorflow import keras
Keras 函式式 API 有助於建立與使用順序 API 建立的模型相比更靈活的模型。函式式 API 可以處理具有非線性拓撲的模型,可以共享層並處理多個輸入和輸出。深度學習模型通常是一個包含多個層的有向無環圖 (DAG)。函式式 API 有助於構建層圖。
我們正在使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 有助於透過瀏覽器執行 Python 程式碼,並且無需任何配置即可免費訪問 GPU(圖形處理單元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是使用 Python 實現 Keras 與 Embedding 層共享層的程式碼片段:
示例
print("Embedding for 2000 unique words mapped to 128-dimensional vectors")
shared_embedding = layers.Embedding(2000, 128)
print("Variable-length integer sequence")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("Variable-length integer sequence")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("Reuse the same layers to encode both the inputs")
encoded_input_a = shared_embedding(text_input_a)
encoded_input_b = shared_embedding(text_input_b)程式碼來源 - https://www.tensorflow.org/guide/keras/functional
輸出
Embedding for 2000 unique words mapped to 128-dimensional vectors Variable-length integer sequence Variable-length integer sequence Reuse the same layers to encode both the inputs
解釋
函式式 API 模型使用共享層。
這些共享層是可以多次在同一模型中重用的例項。
這些層學習與圖中多個路徑相對應的特徵。
共享層還用於編碼來自文字兩個不同部分的輸入,這些部分具有相同的詞彙表。
這樣,就可以在不同的輸入之間共享資訊。
因此,模型可以在較少的資料量上進行訓練。
在上面的程式碼中,“Embedding”層在兩個不同的文字之間共享。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP