TensorFlow提取和重用层计算图中的节点

简介: 由于要处理的层计算图是静态数据结构,可以对其进行访问和检查。而这就是将函数式模型绘制为图像的方式。

由于要处理的层计算图是静态数据结构,可以对其进行访问和检查。而这就是将函数式模型绘制为图像的方式。


这也意味着您可以访问中间层的激活函数(计算图中的“节点”)并在其他地方重用它们,这对于特征提取之类的操作十分有用。


让我们来看一个例子。下面是一个 VGG19 模型,其权重已在 ImageNet 上进行了预训练:


下面的代码就是首先调用VGG19模型,我们需要VGG19中间层提取到的特征,所以我们指定输出为VGG19的输入,然后输出是VGG19中间内部的每个层,这样当我们传入一个图片数据给这个模型时,我们就会获得利用VGG19提取到的特征。


完整代码:


"""

* Created with PyCharm

* 作者: 阿光

* 日期: 2022/1/2

* 时间: 11:25

* 描述:

"""

import numpy as np

import tensorflow as tf

from keras import Model


vgg19 = tf.keras.applications.VGG19()


features_list = [layer.input for layer in vgg19.layers]


feature_extraction_model = Model(

   inputs=vgg19.input,

   outputs=features_list

)


img = np.random.random((1, 224, 224, 3)).astype('float32')


extracted_features = feature_extraction_model(img)

print(extracted_features)

目录
相关文章
element-ui下拉框el-select多选出现滚动条闪现
弹窗组件中放置了el-select下拉框组件,多选项较多时,聚焦弹出下拉选择框时,下方会出现一个横向滚动条闪现一下,虽然不影响使用,但是作为一个追求完美的码农肯定是受不了
|
API 数据安全/隐私保护
Argo CD接入LDAP认证或者gitea认证的方法
argocd默认是通过修改argocd-cm来添加账户的,添加完账户后,还需要使用argocd客户端命令去给账户设置密码,这肯定是比较麻烦的,为了方便使用,我们可以接入ldap认证或者gitea的oauth2认证。 这里我们主要写ldap认证,因为gitea没有提供组信息给dex,而ldap能返回组信息 ,gitea的接入会在文章的末尾进行简单介绍 关键词:argocd ldap dex
2367 1
Argo CD接入LDAP认证或者gitea认证的方法
|
10月前
|
负载均衡 算法 安全
硬件负载均衡和软件负载均衡有什么区别?
硬件负载均衡和软件负载均衡有什么区别?
478 127
|
9月前
|
运维 安全 数据可视化
如何选择高效教务系统?推荐“一秒教务”——独立部署、即开即用,功能全面覆盖
本文探讨如何选择高效的教务系统,并重点推荐“一秒教务”。该系统支持独立部署,保障数据安全;功能全面覆盖招生、排课、考勤、财务等环节;界面简洁易用,部署快速。适用于K12学校、培训机构、职业教育等多种场景,对比传统系统优势明显,如即开即用、扩展性强。文章还提供了选型建议和落地步骤,助力教育机构实现高效管理与数字化转型。
284 0
|
监控 安全 Linux
Linux命令rpmkeys:守护RPM包的安全之门
`rpmkeys`是Linux中管理RPM包公钥的工具,用于验证软件包的签名,确保安全。它支持导入、导出、删除和查询公钥,通过数字签名保证包的完整性和来源可靠性。例如,使用`--import`导入公钥,`--query`查询公钥。最佳实践包括验证公钥来源、定期更新并备份。该命令间接保障了数据处理和分析的安全环境。
|
消息中间件 网络协议 JavaScript
消息队列 MQ产品使用合集之报错提示是"the internal error!",是什么原因导致的”
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
关系型数据库 MySQL 数据库
Docker(43)- 安装 Mysql,数据持久化
Docker(43)- 安装 Mysql,数据持久化
396 0
Docker(43)- 安装 Mysql,数据持久化
|
安全 Java Go
【Go语言专栏】Go语言中的加密与安全通信
【4月更文挑战第30天】本文介绍了Go语言中的加密与安全通信。通过使用golang.org/x/crypto/ssh/terminal库实现终端加密,以及golang.org/x/net/websocket库实现WebSocket安全通信。文章展示了安装库的命令、加密操作及WebSocket通信的示例代码。此外,还列举了安全通信在数据传输加密、用户认证、密码保护和文件加密等场景的应用。掌握这些知识对开发安全的Web应用至关重要。
246 0
【循环链表】数据结构——单向循环链表和双向循环链表操作&笔记
【循环链表】数据结构——单向循环链表和双向循环链表操作&笔记
|
JavaScript Java 关系型数据库
大学生租房|基于Springboot+vue的大学生租房平台(源码+数据库+文档)
大学生租房|基于Springboot+vue的大学生租房平台(源码+数据库+文档)
247 0