Tensorflow卷积神经网络

一个典型的卷积层

# 第一二参数值得卷积核尺寸大小,即patch,第三个参数是图像通道数,第四个参数是卷积核的数目,代表会出现多少个卷积特征图像;  
f1 = init_weights([3, 3, 1, 32])
#filter并不只是为了定义卷积形状,而就像简单神经网络一样把值也传进来,并且会进行迭代
conv1 = tf.nn.conv2d(X, filter=f1, strides=[1, 1, 1, 1], padding='SAME')
# ?,28,28,32
conv1_a = tf.nn.relu(conv1)
# 池化卷积结果(conv2d)池化层采用kernel大小为2*2,步数也为2,周围补0,取最大值。数据量缩小了4倍
# ksize对应4个纬度,比如上一步之后conv1_a的维度为[图片数量,28,28,32],池化层只是用框去遍历,就是不参与参数的迭代
pool1 = tf.nn.max_pool(conv1_a, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
# 因为神经元过多,防止过拟合加入一个dropout层,样本较少时很必要 
out1 = tf.nn.dropout(pool1, p_keep_conv)

发表评论

电子邮件地址不会被公开。