# tensorflow基于mnist数据集上的VGG11网络,可以直接运行
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import numpy as np
import os
def maxPoolLayer(x, layer_name, ksize=2, strides=2):
'''池化层'''
'''池化窗口大小:ksize=[1,height,width,1]'''
'''滑动步长大小:strides=[batch滑动步长, height方向滑动步长, width方向滑动步长, channels方向滑动步长]'''
return tf.nn.max_pool(x, ksize=[1, ksize, ksize, 1], strides=[1, strides, strides, 1], padding='SAME', name=layer_name)
def con2d_layer(x, out_chs, ksize, layer_name, strides=1):
'''卷积层'''
d_in = x.get_shape()[-1].value
with tf.variable_scope(layer_name):
'''卷积核:shape=[filter_height, filter_width, in_channels, out_channels]'''
w = tf.get_variable('weights', shape=[ksize, ksize, d_in, out_chs],
initializer=tf.truncated_normal_initializer(stddev=0.1)) # 初始化权重值
# '''shape=[out_channels]'''
b = tf.get_variable('bias', shape=[out_chs],
initializer=tf.truncated_normal_initializer(stddev=0.1)) # 初始化偏执值
y = tf.nn.relu(tf.nn.bias_add(tf.nn.conv2d(x, w, strides=[1, strides, strides, 1], padding='SAME'), b)) # 卷积运算
return y
def fc_layer(x, out_kernels, layer_name):
'''全连接层'''
n_in = x.get_shape()[-1].v