卷积神经网络:从理论到实践
1. 卷积神经网络基础
卷积神经网络(CNN)由多个卷积层和最大池化层组成。卷积层能从不同视角分析图像,最大池化层则在不损失太多信息的前提下,通过降低数据维度简化计算。
以一个 256×256 的全尺寸图像为例,使用 5×5 的滤波器进行卷积操作,可得到 64 个卷积结果。随后,通过最大池化对每个卷积结果进行下采样,最终得到 64 个 128×128 的较小卷积图像。
卷积层包含一个偏置项和一个激活函数,会产生 5×5 + 5 = 30 个参数。而最大池化层在降低数据维度时,无需额外参数。
2. 在 TensorFlow 中实现 CNN
2.1 定义变量与加载数据
import numpy as np
import matplotlib.pyplot as plt
import cifar_tools
import tensorflow as tf
names, data, labels = \
cifar_tools.read_data('/home/binroot/res/cifar-10-batches-py')
x = tf.placeholder(tf.float32, [None, 24 * 24])
y = tf.placeholder(tf.float32, [None, len(names)])
W1 = tf.Variable(tf.random_normal([5, 5, 1, 64]))
b1 = tf.Variable(tf.random_normal([64
超级会员免费看
订阅专栏 解锁全文
783

被折叠的 条评论
为什么被折叠?



