python - 彩色图像卷积核的 tensorflow 权重?

标签 python colors neural-network tensorflow conv-neural-network

目前我有一些网络使用灰度图像进行分类。我想继续处理彩色 (RGB) 图像。

在 Tensorflow 的 CIFAR-10 教程中,我对卷积核的权重感到困惑。第一个卷积看起来像这样:

kernel = _variable_with_weight_decay('weights', shape=[5, 5, 3, 64],
                                         stddev=1e-4, wd=0.0)
conv = tf.nn.conv2d(images, kernel, [1, 1, 1, 1], padding='SAME')

所以它是一个 5x5 卷积,输入为 3(每个颜色 channel 一个:红色、绿色和蓝色图像信息),它生成 64 个特征图。

然而,第二个卷积层采用 64 个特征图的输入:

kernel = _variable_with_weight_decay('weights', shape=[5, 5, 64, 64],
                                         stddev=1e-4, wd=0.0)
conv = tf.nn.conv2d(norm1, kernel, [1, 1, 1, 1], padding='SAME')

...那么,这是如何处理颜色信息的呢?这是否意味着不同的颜色 channel 以某种方式传播在卷积层 1 的 64 个特征图上?

我以为第 1 层卷积层为每个颜色 channel 生成 64 个特征图,因此最终得到 3 * 64 = 196 个特征图……但显然我错了。

conv 层 1 中的颜色信息是如何混合的?

最佳答案

参见 CuDNN 描述中的等式 3 here

基本上是针对单例(n),单行(p)单列(q),空间卷积的结果将是 5x5x3 值的加权和。因此每次激活都将包含来自所有 3 种颜色的信息。

关于python - 彩色图像卷积核的 tensorflow 权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35420275/

相关文章:

python - 如何实现命令行切换到我的脚本?

python - Fabric env.roledefs 未按预期运行

python - 根据正值和负值之间的变化进行拆分的列表列表

java - 从 Android 颜色转换为 HTML 颜色

java - Android默认白色背景十六进制代码

r - 在保留数据帧结构的同时合并 R 中的重复字符

python - 如何使用 NetworkX 和 pymongo 绘制 Twitter 用户的社交网络?

java - RGB 整数到 Color 对象

android - Android 手机可以对神经网络进行实时评分吗?

python - 类型错误 : _reshape_dispatcher() missing 1 required positional argument: 'newshape'