学习TensorFlow,线性回归模型
学习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,线性回归模型的更多相关文章
- [tensorflow] 线性回归模型实现
在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...
- 莫烦python教程学习笔记——线性回归模型的属性
#调用查看线性回归的几个属性 # Youtube video tutorial: https://www.youtube.com/channel/UCdyjiB5H8Pu7aDTNVXTTpcg # ...
- TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化
线性回归模型 "回归"这个词,既是Regression算法的名称,也代表了不同的计算结果.当然结果也是由算法决定的. 不同于前面讲过的多个分类算法或者逻辑回归,线性回归模型的结果是 ...
- tensorflow入门(1):构造线性回归模型
今天让我们一起来学习如何用TF实现线性回归模型.所谓线性回归模型就是y = W * x + b的形式的表达式拟合的模型. 我们先假设一条直线为 y = 0.1x + 0.3,即W = 0.1,b = ...
- 线性回归模型的 MXNet 与 TensorFlow 实现
本文主要探索如何使用深度学习框架 MXNet 或 TensorFlow 实现线性回归模型?并且以 Kaggle 上数据集 USA_Housing 做线性回归任务来预测房价. 回归任务,scikit-l ...
- 用Tensorflow完成简单的线性回归模型
思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在 ...
- TensorFlow笔记-模型的保存,恢复,实现线性回归
模型的保存 tf.train.Saver(var_list=None,max_to_keep=5) •var_list:指定将要保存和还原的变量.它可以作为一个 dict或一个列表传递. •max_t ...
- SparkMLlib学习之线性回归
SparkMLlib学习之线性回归 (一)回归的概念 1,回归与分类的区别 分类模型处理表示类别的离散变量,而回归模型则处理可以取任意实数的目标变量.但是二者基本的原则类似,都是通过确定一个模型,将输 ...
- ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档]
ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档] 简介 简单地说就是该有的都有了,但是总体跑起来效果还不好. 还在开发中,它工作的效果还不好.但是你可以直 ...
随机推荐
- php中sql语句常见错误
.php文件中sql语句的写法导致的错误如下: 1.$logSql="select * from jd_login where uname=".$u."and upwd= ...
- Fashion-MNIST:A MNIST-like fashion product database. Benchmark
Zalando的文章图像的一个数据集包括一个训练集6万个例子和一个10,000个例子的测试集. 每个示例是一个28x28灰度图像,与10个类别的标签相关联. 时尚MNIST旨在作为用于基准机器学习算法 ...
- Linux学习之CentOS(十八)-----恢复Ext3下被删除的文件与 使用grep恢复被删文件内容(转)
前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 'test.txt' $ls -il test.txt 15 -rw-rw-r– 2 roo ...
- spring基本原理
作者:王奕然链接:https://www.zhihu.com/question/21346206/answer/101789659来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- JsonArray转List,list转json字符串
JsonArray data = object.getAsJsonArray("data"); Gson gson =new Gson(); List<Object> ...
- Java Web -【分页功能】详解
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- 【python进阶】Garbage collection垃圾回收1
前言 GC垃圾回收在python中是很重要的一部分,同样我将分两次去讲解Garbage collection垃圾回收,此篇为Garbage collection垃圾回收第一篇,下面开始今天的说明~~~ ...
- Docker学习系列(二)Docker初体验
一.系统要求 Docker的安装,需要在CentOS 7.0+版本,内核至少3.10,64-bit uname --r [randy@randysun ~]$ uname --r -.el7.x86_ ...
- 使用python scipy.optimize linprog和lingo线性规划求解最大值,最小值(运筹学学习笔记)
1.线性规划模型: 2.使用python scipy.optimize linprog求解模型最优解: 在这里我们用到scipy中的linprog进行求解,linprog的用法见https://doc ...
- ACM Self Number
In 1949 the Indian mathematician D.R. Kaprekar discovered a class of numbers called self-numbers. Fo ...