卷积神经网络中过滤器可视化
项目描述
警告
此仓库已归档,不再维护。
Conveiro
Conveiro(卷积 + oneiro,希腊语意为“梦想”)是一个开源库,用于深度卷积网络的特性可视化。它实现了多种可视化技术,如拉普拉斯变换、多尺度、深度梦境和CDFS。
所有这些方法都是基于
深度梦境
深度梦境是基于以下技术的实现
- https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/deepdream/deepdream.ipynb
- https://ai.googleblog.com/2015/06/inceptionism-going-deeper-into-neural.html
工作原理
- 我们创建一个随机图像(或我们可以使用种子图像)
- 我们将此图像输入网络,并根据计算的梯度进行优化
- 我们采用一些基于缩放和频率的巧妙技巧
还有更多步骤,但这正是这项技术的精髓。
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 --help
或conveiro [命令名称] --help
以显示功能列表和选项
示例
有关如何使用此库的示例,请参阅docs/
文件夹中的jupyter笔记本
- https://github.com/Showmax/conveiro/tree/master/docs/deep_dream.ipynb
- https://github.com/Showmax/conveiro/tree/master/docs/cdfs.ipynb
最简单的示例
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))
注意 API是初步的,可能在未来的版本中更改。
文章
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
conveiro-0.2.1.tar.gz (15.3 kB 查看哈希值)
构建分发
conveiro-0.2.1-py3-none-any.whl (15.5 kB 查看哈希值)