tensorflow 神经网络基础

首先介绍本文使用的数据集MNIST手写数字数据集:

    MNIST数据集的官网是http://yann.lecun.com/exdb/mnist/

是由Google实验室的Corinna Cortes和纽约大学柯朗研究所的YannLeCun建有一个手写数字数据库,训练库有60,000张手写数字图像,测试库有10,000张。

   可以手动在官网下载,也可以在python中进行下载

   在这里,我们提供了一份python源代码用于自动下载和安装这个数据集。你可以下载这份代码,然后用下面的代码导入到你的项目里面,也可以直接复制粘贴到你的代码文件里面。

From tensorflow.examples.tutorials.mnist importinput_data
mnist =input_data.read_data_sets("MNIST_data/", one_hot=True)

   MNIST数据库会直接下载在项目的根目录下

然后进行机器学习,我将机器学习分为以下几个步骤:

 

Step1:导入数据

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

  导入的MNIST数据集,如果本地中包含则直接导入,如果没有则会通过官网进行下载,数据集中的数据可以进行编码打印出来,具体的实现步骤可以在网上寻找具体的代码。
 

Step2:设置参数

x = tf.placeholder(tf.float32, [None,784])
w = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, w)+b)
y_ = tf.placeholder(tf.float32, [None, 10])

tf.placeholder代表占位符,具体指输入的图像和输入的标签

w代表权值矩阵

b代表偏执矩阵

softmax我理解为是激活函数

y代表预测的输出

 

Step3:设置损失函数

cross_entropy =tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y)))
train_sept = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

根据y,y_通过交叉熵构建损失函数,并用学习率0.01的梯度下降算法使得损失函数值最小

 

Step4:创建session,初始化所有变量

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()

 

Step5:优化参数

for i in range(1000):
    batch_xs, batch_ys =mnist.train.next_batch(100)
    sess.run(train_sept, feed_dict={x:batch_xs, y_: batch_ys})

优化权值矩阵和偏置,也就是讲的训练过程

 

Step6:检测测试集

corrent_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(corrent_prediction, tf.float32))
print/

(sess.run(accuracy,feed_dict{x:mnist.test.images,y_:mnist.test.labels}))

在测试集中检测准确率

 

最终结果:

测试集中准确率0.9046:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值