跳转到主要内容

卷积神经网络中过滤器可视化

项目描述

警告

此仓库已归档,不再维护。

Conveiro

Conveiro(卷积 + oneiro,希腊语意为“梦想”)是一个开源库,用于深度卷积网络的特性可视化。它实现了多种可视化技术,如拉普拉斯变换、多尺度、深度梦境和CDFS。

所有这些方法都是基于

深度梦境

深度梦境是基于以下技术的实现

工作原理

  • 我们创建一个随机图像(或我们可以使用种子图像)
  • 我们将此图像输入网络,并根据计算的梯度进行优化
  • 我们采用一些基于缩放和频率的巧妙技巧

还有更多步骤,但这正是这项技术的精髓。

CDFS

CDFS(颜色不相关傅里叶空间)是基于以下技术的自定义实现

工作原理

  • 我们生成随机的复数系数
  • 我们使用这些系数通过逆傅里叶变换生成图像
  • 我们将此图像输入网络后,可以计算梯度并使用梯度下降来优化这些系数

还有更多步骤,但这正是这项技术的精髓。

需求

  • Python 3.4及以上版本
  • Tensorflow(CPU或GPU版本,版本2尚未支持)
  • Numpy
  • Matplotlib
  • click, tensornets, pillow, graphviz(如果您想使用带有示例的命令行工具)

安装

pip install conveiro

开发版本

pip install -e .    # from cloned repository

命令行使用

此库附带一个名为conveiro的命令行工具,可以可视化并从tensornets库中生成网络

Usage: conveiro COMMAND [OPTIONS] [ARGS]...

Commands:
  graph     Create a graph of the network architecture.
  layers    List available layers (operations) in a network.
  networks  List available network architectures (from tensornets).
  render    Hallucinate an image for a layer / neuron.

运行conveiro --helpconveiro [命令名称] --help以显示功能列表和选项

示例

有关如何使用此库的示例,请参阅docs/文件夹中的jupyter笔记本

最简单的示例

import tensorflow as tf
import tensornets as nets
from conveiro import cdfs

input_t, decorrelated_image_t, coeffs_t = cdfs.setup(224)

model = nets.Inception1(input_t)
graph = tf.get_default_graph()

with tf.Session() as sess:
    sess.run(model.pretrained())

    objective = graph.get_tensor_by_name("inception1/block3b/concat:0")
    image = cdfs.render_image(sess, decorrelated_image_t, coeffs_t, objective[..., 55], 0.01)
    cdfs.show_image(cdfs.process_image(image))

CDFS output

注意 API是初步的,可能在未来的版本中更改。

文章

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

conveiro-0.2.1.tar.gz (15.3 kB 查看哈希值)

上传时间 源代码

构建分发

conveiro-0.2.1-py3-none-any.whl (15.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面