如何使用 Keras 通过 Python 提取和重用层图中的节点?
Keras 是作为 ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分而开发的。Keras 是一个用 Python 编写的深度学习 API。它是一个高级 API,具有高效的界面,有助于解决机器学习问题。它运行在 Tensorflow 框架之上。它旨在帮助快速进行实验。它提供了开发和封装机器学习解决方案所必需的基本抽象和构建块。
它具有高度可扩展性,并具有跨平台能力。这意味着 Keras 可以在 TPU 或 GPU 集群上运行。Keras 模型也可以导出以在 Web 浏览器或手机中运行。
Keras 已经存在于 Tensorflow 包中。可以使用下面的代码行访问它。
import tensorflow from tensorflow import keras
与使用顺序 API 创建的模型相比,Keras 函数式 API 有助于创建更灵活的模型。函数式 API 可以处理具有非线性拓扑、可以共享层并处理多个输入和输出的模型。深度学习模型通常是包含多个层的有向无环图 (DAG)。函数式 API 有助于构建层图。
我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 有助于在浏览器上运行 Python 代码,并且不需要任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。以下是使用 Kera 提取和重用层图中节点的代码片段 −
示例
print("具有预训练权重的 VGG19 模型") vgg19 = tf.keras.applications.VGG19() features_list = [layer.output for layer in vgg19.layers] feat_extraction_model = keras.Model(inputs=vgg19.input, output=features_list) img = np.random.random((1, 224, 224, 3)).astype("float32") print("创建特征提取模型") extracted_features = feat_extraction_model(img)
代码来源 − https://www.tensorflow.org/guide/keras/ functional
输出
具有预训练权重的 VGG19 模型 Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5 574717952/574710816 [==============================] - 6s 0us/step 创建特征提取模型
解释
由于层图是静态数据结构,因此可以访问。
这就是可以将功能模型绘制为图像的原因。
中间层(节点)的激活也可以访问和重用。
这对于特征提取非常有用。
我们将使用在 ImageNet 的帮助下具有预训练权重的 VGG19 模型。
可以通过查询图形数据结构来获得这些中间激活。
这些特征可用于创建一个新的特征提取模型,该模型返回中间层激活的值。