tensorflow入门:mnist

本文从获取和使用MNIST数据集开始,通过TensorFlow的tf.layers构建CNN模型,详细讲解损失函数、优化器设置、模型评估、训练过程、测试集评估、TensorBoard日志输出、模型保存与恢复以及GPU配置。逐步实现手写数字识别的全过程。
摘要由CSDN通过智能技术生成

1. mnist数据集的获取和使用

1.1获取mnist

from tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets
mnist = read_data_sets("MNIST_data/", one_hot=True) # "MNIST_data/"是数据保存的位置,one-hot是否把label变成one-hot编码

1.2使用mnist

mnist.train.next_batch(50) #batch的方式获取
mnist.test.images,mnist.test.labels #全部获取

2.使用tf.layers搭建cnn识别模型

x = tf.placeholder('float', [None, 28*28]) #输入,mnist读入的数据是28*28的,而非一个矩阵
y_ = tf.placeholder('float', [None, 10])
# cnn model
x_image = tf.reshape(x, [-1,28,28,1]) #转输入为图片格式
w_init = tf.truncated_normal_initializer(stddev=0.1, seed=9)#参数初始化器
b_init = tf.constant_initializer(0.1)
# 第一层cnn和max_pooling
cnn1 = tf.layers.conv2d(x_image, 32, (5,5), padding='same', activation=tf.nn.relu, \
	kernel_initializer=w_init, bias_initializer=b_init)
mxpl1 = tf.layers.max_pooling2d(cnn1, 2, strides=2, padding='same')
# 第二层cnn和max_pooling
cnn2 = tf.layers.conv2d(mxpl1, 64, (5,5), padding='same', activation=tf.nn.relu, \
	kernel_initializer=w_init, bias_initializer=b_init)
mxpl2 = tf.layers.max_pooling2d(cnn2, 2, strides=2, padding='same')
mxpl2_flat = tf.reshape(mxpl2, [-1,7*7*64])
#全连接1和dropout
fc1 = tf.layers.dense(mxpl2_flat, 1024, activation=tf.nn.relu, \
	kernel_initializer=w_init, bias_initializer=b_init)
keep_prob = tf.placeholder('float')
fc1_drop = tf.nn.dropout(fc1, keep_prob)
logits = tf.layers.dense(fc1_drop, 10, kernel_initializer=w_init, bias_initializer=b_init)

3.损失函数loss和优化器


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值