如何使用 Keras 和 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 之上的。以下是使用 Keras 提取和重用层图中节点的代码片段:
示例
print("VGG19 model with pre-trained weights")
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)
img = np.random.random((1, 224, 224, 3)).astype("float32")
print("Create feature-extraction model")
extracted_features = feat_extraction_model(img)代码来源 - https://tensorflowcn.cn/guide/keras/functional
输出
VGG19 model with pre-trained weights Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5 574717952/574710816 [==============================] - 6s 0us/step Create feature-extraction model
解释
由于层图是静态数据结构,因此可以访问它。
这就是为什么函数式模型可以作为图像绘制的原因。
还可以访问和重用中间层(节点)的激活。
这对于特征提取非常有用。
我们将使用 VGG19 模型,该模型使用 ImageNet 预训练权重。
可以通过查询图数据结构来获得这些中间激活。
这些特征可用于创建一个新的特征提取模型,该模型返回中间层激活的值。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP