如何使用Python中的Embedding层使Keras共享层?

如何使用Python中的Embedding层使Keras共享层?

Keras是作为ONEIROS项目(开放式神经电子智能机器人操作系统)的一部分研究开发的。Keras是一种深度学习API,使用Python编写。它是一个高级API,具有有效的界面,有助于解决机器学习问题。它运行在Tensorflow框架上。它的设计是为了帮助快速实验。它提供了必要的抽象和构建块,这些都是在开发和封装机器学习解决方案中至关重要的。

它高度可扩展,具有跨平台能力。这意味着Keras可以在TPU或GPU集群上运行。Keras模型也可以导出为在Web浏览器或移动电话上运行。

Keras已经包含在Tensorflow软件包中。可以使用以下代码行访问Keras −

import tensorflow
from tensorflow import keras

functional API可以创建比使用sequential API创建的模型更灵活的模型。功能API可以使用具有非线性拓扑结构的模型,可以共享层并使用多个输入和输出。深度学习模型通常是包含多个层的有向无环图(DAG)。功能API帮助构建层的图形。

我们使用Google Colaboratory来运行下面的代码。Google Colab或Colaboratory可以在浏览器上运行Python代码,不需要任何配置,并且可以免费访问GPU(图形处理单元)。Colaboratory基于Jupyter NoteBook构建。以下是使用Python实现的Keras与Embedding层共享层的代码片段−

更多Python相关文章,请阅读:Python 教程

示例

print("将2000个唯一的单词嵌入到128维向量中")
共享嵌入=layers.Embedding(2000, 128)
print("可变长度的整数序列")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("可变长度的整数序列")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("重用相同的层来对两个输入进行编码")
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”层在两个不同的文本之间共享。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程