lenet5一种典型的用来识别数字的卷积网络。当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到这种商用的地步
示意图:
代码:
# encoding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import tensorflow as tf
import os
#终端执行程序时设置使用的GPU
os.environ["CUDA_VISIBLE_DEVICES"] = "3"
#数据准备
import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot = True)
#超参数设置
learning_rate = 0.001
training_iters = 200000
batch_size = 64
display_step = 20
#定义参数设置
n_input = 784 #输入的维度
n_classes = 10 #标签的维度
#输入数据:占位符
input_x = tf.placeholder(tf.float32, [None, n_input])
input_y = tf.placeholder(tf.float32, [None, n_classes])
keep_prob = tf.placeholder(tf.float32)
#卷积操作
#tf.nn.bias_add是tf.nn.add的特例,要求列数必须相同
def conv2d(name, l_input, w, b):
return tf.nn.relu(tf.nn.bias_add(tf.nn.conv2d(l_input, w, strides = [1, 1, 1, 1], padding = 'VALID'