如何使用 Keras 提取和重用 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之上。以下是代码片段,其中Kera用于提取和重用层图中的节点-
示例
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://www.tensorflow.org/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的帮助下具有预训练的权重。
这些中间激活可以通过查询图数据结构获得。
这些特征可用于创建一个新的特征提取模型,该模型返回中间层激活的值。