学习TensorFlow,在MNIST数据集上建立softmax回归模型并测试

一、代码

<span style="font-size:18px;">from tensorflow.examples.tutorials.mnist import input_data
mnist =input_data.read_data_sets('MNIST_data', one_hot=True)
import tensorflow astf
sess =tf.InteractiveSession()
x =tf.placeholder(tf.float32, shape=[None, 784])
y_ =tf.placeholder(tf.float32, shape=[None, 10])
W =tf.Variable(tf.zeros([784,10]))
b =tf.Variable(tf.zeros([10]))
sess.run(tf.initialize_all_variables())
y =tf.nn.softmax(tf.matmul(x,W) + b)
cross_entropy =-tf.reduce_sum(y_*tf.log(y))
train_step =tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
for i in range(1000):
  batch = mnist.train.next_batch(50)
  train_step.run(feed_dict={x: batch[0], y_:batch[1]})
correct_prediction =tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy =tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(accuracy.eval(feed_dict={x:mnist.test.images, y_: mnist.test.labels}))</span>

二、运行结果

三、代码解析

import tensorflow as tf

sess =tf.InteractiveSession()

InteractiveSession()可以一边构建计算图,一边执行,而Session()需要把计算图全部构建完成才能执行

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

y_ =tf.placeholder(tf.float32, shape=[None, 10])

创建图像输入节点和目标输出节点

W = tf.Variable(tf.zeros([784,10]))

b = tf.Variable(tf.zeros([10]))

构建softmax回归模型的参数:权重和偏置

sess.run(tf.initialize_all_variables())

初始化所有的variables</span>

y = tf.nn.softmax(tf.matmul(x,W)+ b)

cross_entropy = -tf.reduce_sum(y_*tf.log(y))

预测输出,使用交叉熵作为损失函数

train_step =tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

步长为0.01,使用梯度下降法训练模型

for i in range(1000):

batch = mnist.train.next_batch(50)

train_step.run(feed_dict={x:batch[0], y_: batch[1]})

训练周期为1000,每个周期batch是50幅图像

correct_prediction =tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

比较每个预测结果和真实结果,返回一个二值向量

accuracy =tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

将二值向量转换为浮点向量,并计算正确率

print(accuracy.eval(feed_dict={x:mnist.test.images, y_: mnist.test.labels}))

打印输出训练模型对数据集的测试结果,feed_dict指定输入图像数据和目标输出结果

参考资料:https://www.tensorflow.org/versions/r0.7/tutorials/mnist/pros/index.html

学习TensorFlow,线性回归模型的更多相关文章

  1. [tensorflow] 线性回归模型实现

    在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...

  2. 莫烦python教程学习笔记——线性回归模型的属性

    #调用查看线性回归的几个属性 # Youtube video tutorial: https://www.youtube.com/channel/UCdyjiB5H8Pu7aDTNVXTTpcg # ...

  3. TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化

    线性回归模型 "回归"这个词,既是Regression算法的名称,也代表了不同的计算结果.当然结果也是由算法决定的. 不同于前面讲过的多个分类算法或者逻辑回归,线性回归模型的结果是 ...

  4. tensorflow入门(1):构造线性回归模型

    今天让我们一起来学习如何用TF实现线性回归模型.所谓线性回归模型就是y = W * x + b的形式的表达式拟合的模型. 我们先假设一条直线为 y = 0.1x + 0.3,即W = 0.1,b = ...

  5. 线性回归模型的 MXNet 与 TensorFlow 实现

    本文主要探索如何使用深度学习框架 MXNet 或 TensorFlow 实现线性回归模型?并且以 Kaggle 上数据集 USA_Housing 做线性回归任务来预测房价. 回归任务,scikit-l ...

  6. 用Tensorflow完成简单的线性回归模型

    思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在 ...

  7. TensorFlow笔记-模型的保存,恢复,实现线性回归

    模型的保存 tf.train.Saver(var_list=None,max_to_keep=5) •var_list:指定将要保存和还原的变量.它可以作为一个 dict或一个列表传递. •max_t ...

  8. SparkMLlib学习之线性回归

    SparkMLlib学习之线性回归 (一)回归的概念 1,回归与分类的区别 分类模型处理表示类别的离散变量,而回归模型则处理可以取任意实数的目标变量.但是二者基本的原则类似,都是通过确定一个模型,将输 ...

  9. ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档]

    ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档] 简介 简单地说就是该有的都有了,但是总体跑起来效果还不好. 还在开发中,它工作的效果还不好.但是你可以直 ...

随机推荐

  1. C++ 实参和形参

    形参:在函数没有调用的时候,函数的形参并不占据实际的内存空间,也没有实质的值,--正如字面意思那样,"形式"参数,只是一个"形式. 实参:当函数被调用的时候,系统会为形式 ...

  2. 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

    视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...

  3. 2018年Java实习春招总结

    因为女票在北京,打算去北京实习,所以从去年12月开始复习Java,做项目,视频是看的黑马的视频,还可以吧,把Java基础和SSM框架看了下,做了个小项目,然后看牛客网的中级项目课,做了一个健身头条项目 ...

  4. angularjs+ionic的app端分页和条件

    做app项目积分商城的商品列表需要分页显示 实现: ionic滚动条:ion-scroll 用于创建一个可滚动的容器. 附:菜鸟教程:http://www.runoob.com/ionic/ionic ...

  5. c++银行家算法

    #include <iostream> #include<string> #define False 0 #define True 1 using namespace std; ...

  6. Spring错误之org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'bookService' is expected to be of type 'pw.fengya.tx.BookService' but was actually of type 'com.sun.proxy.$Proxy1

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cas ...

  7. ACM Tempter of the Bone

    小狗在古老的迷宫(maze)中发现了一个骨头,这使它非常着迷.然而,当他把它捡起来的时候,迷宫开始摇晃,狗狗可以感觉到地面下沉(sinking).他意识到这块骨头是一个陷阱(trap),他拼命地想摆脱 ...

  8. Node.js 系统

    稳定性: 4 - API 冻结 提供一些基本的操作系统相关函数. 使用 require('os') 访问这个模块. os.tmpdir() 返回操作系统的默认临时文件夹 os.endianness() ...

  9. Bootstrap3 栅格系统-栅格参数

    通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的. -–下面有个"顶"字,你懂得O(∩_∩)O哈哈~ -–乐于分享,共同进步! -–更多文章请看:h ...

  10. Android桌面小插件——Widget

    Android桌面小插件--Widget 效果图 实现 1. 创建Widget类 创建一个Widget类,并实现页面创建的时候,就实现显示时间 package com.kongqw.kqwwidget ...