TensorFlow 面向专家的Minist笔记(中文,简化版)(Deep MNIST for Experts)

本文档是针对TensorFlow专家的MNIST教程,涉及placeholder数据类型、Variable初始化、计算图构建、优化目标设置、训练过程、模型评估以及更复杂的模型如权重初始化、卷积和池化层、全连接层与Dropout的使用。通过实例代码,详细解释了如何在TensorFlow中构建和训练深度学习模型。
摘要由CSDN通过智能技术生成

placehoder数据类型:

x = tf.placeholder(tf.float32, shape=[None, 784])

表示placehoder的大小,任意行数,仅要求列数为784

placehoder对数据的尺寸作自调整

Variable数据类型:
W = tf.Variable(tf.zeros([784,10]))

Variable必须手动初始化才可使用,其初始化函数为tf.global_variables_initializer(),然而这句函数要运行,还有用sess.run()封装:sess.run(tf.global_variables_initializer())


定义计算图:

写出计算方程,把数据的矩阵写进去:

y = tf.matmul(x,W) + b
定义loss
loss=tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y)

定义优化目标:样本平均loss

cross_entropy = tf.reduce_mean(
    tf
.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))

设定训练方式:

对优化目标,选择优化方向:
minimize(cross_entropy)
选择train类里的优化算法(如梯度下降,步长由参数决定):
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)


运行训练:

train_step.run()

此代码将运行一次.


分批多次计算的时候,应使用循环,并把数据分成批次(batch),分批次的方法已经内置:

batch = mnist.train.next_batch(100)

运行的时候,必须feed进batch的输入,如下:


for _ in range(1000):
  batch = mnist.train.next_batch(100)
  train_step.run(feed_dict={x: batch[0], y_: batch[1]})

评估模型:

argmax模块

argmax(y,1)会给出y中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值