Keras 如何与 Embedding 层一起使用以使用 Python 共享层?
Keras是作为ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分而开发的。Keras是一个深度学习API,它是用Python编写的。它是一种高级API,具有有助于解决机器学习问题的高效界面。它运行在Tensorflow框架之上。它旨在帮助快速进行实验。它提供了在开发和封装机器学习解决方案中必不可少的基本抽象和构建块。
它具有高度可扩展性,并具有跨平台功能。这意味着Keras可以在TPU或GPU集群上运行。Keras模型也可以导出以在Web浏览器或手机中运行。
Keras已经存在于Tensorflow包中。可以使用以下代码行访问它-
import tensorflow from tensorflow import keras
与使用顺序API创建的模型相比,Keras函数式API有助于创建更灵活的模型。函数式API可以处理具有非线性拓扑结构的模型,可以共享层并处理多个输入和输出。深度学习模型通常是包含多个层的有向无环图(DAG)。函数式API有助于构建层图。
我们正在使用GoogleColaboratory运行以下代码。GoogleColab或Colaboratory帮助在浏览器上运行Python代码,并且需要零配置和免费访问GPU(图形处理单元)。Colaboratory建立在JupyterNotebook之上。以下是实现与嵌入层一起使用的Keras以使用Python共享层的代码片段-
示例
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模型使用共享层。
这些共享层是可以在同一模型中多次重复使用的实例。
这些层学习与图中多条路径对应的特征。
共享层还用于对来自具有相似词汇表的文本的两个不同部分的输入进行编码。
这样,不同输入之间的信息共享是可能的。
因此,模型可以在较少的数据量上进行训练。
在上面的代码中,“嵌入”层在两个不同的文本之间共享。