python - 如何使用 dnnlib.tflib.network.Network 获得中间层输出
问题描述
我正在尝试StyleGAN2 NviLab,我想边生成边看特征图,但是我怎样才能得到中间层的输出呢?该模型由 dnnlib.tflib.network.Network 加载,没有关于此库的文档。
解决方案
我有完全相同的问题,使用完全相同的代码库。这就是我获得中间输出的方式(TF 1.14.0):
步骤1:
检查所有图层的名称及其输出形状。这有助于识别您想要其输出的层的名称:
network.print_layers()
第2步:
获取网络中所有层的列表。此列表中的每个元素都是一个元组(layer name: string, layer output: tensor, layer variables)
layers = network.list_layers()
第 3 步:
使用您需要其输出的层的名称获取对表示层输出的张量的引用:
for layer in layers:
print(layer[0], ' ', layer[1])
if layer[0] == REQUIRED_LAYER_NAME:
tensor = layer[1]
最后,运行图表:
required_output = sess.run(tensor, feed_dict={'INPUT_TENSOR_NAME': input_numpy_array})
推荐阅读
- css - 通过样式隔离设置 ActiveClass
- google-cloud-platform - Google 尚未针对 Google 联系人 API 请求验证此应用警告
- node.js - 在 Apple M1 (Big Sur) 上使用 node-gyp 安装本机 Node.js 插件时出错
- python - 打印捕获的异常类型而不打印错误描述
- python - Spark:在 from_json 之后删除空值或仅从 json 获取值
- javascript - Vue提交输入隐藏
- tensorflow - 在树莓派上安装 tensorflow 1.9* 通过修改代码以使用 tf 2 解决
- c++ - 为什么我不能使用 std::tie 从基于范围的对向量中解压缩值 for 循环
- c# - ActionFilterAttribute 中的 GetService 返回 null
- sql - 将两个 LEFT JOINS 连接在一起