TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率

简介: TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率
+关注继续查看

输出结果

image.png

设计代码


#TF之LoR:基于tensorflow实现手写数字图片识别准确率

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

import numpy as np  

import matplotlib.pyplot as plt

mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

print(mnist)

#设置超参数

lr=0.001                      #学习率

training_iters=100       #训练次数

batch_size=100                #每轮训练数据的大小,如果一次训练5000张图片,电脑会卡死,分批次训练会更好

display_step=1

#tf Graph的输入

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

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

#设置权重和偏置

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

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

#设定运行模式

pred =tf.nn.softmax(tf.matmul(x,w)+b)  #

#设置cost function为cross entropy

cost =tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1))

#GD算法

optimizer=tf.train.GradientDescentOptimizer(lr).minimize(cost)

#初始化权重

init=tf.global_variables_initializer()

#开始训练

with tf.Session() as sess:

   sess.run(init)

   avg_cost_list=[]

   for epoch in range(training_iters):  #输入所有训练数据

       avg_cost=0.

       total_batch=int(mnist.train.num_examples/batch_size)

   

       for i in range(total_batch): #遍历每个batch

……

       if (epoch+1) % display_step ==0:  #显示每次迭代日志

           print("迭代次数Epoch:","%04d" % (epoch+1),"下降值cost=","{:.9f}".format(avg_cost))

           avg_cost_list.append(avg_cost)

   print("Optimizer Finished!")

   print(avg_cost_list)

   

   #测试模型

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

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

   print("Accuracy:",accuracy.eval({x:mnist.test.images[:3000],y:mnist.test.labels[:3000]}))

   

   xdata=np.linspace(0,training_iters,num=len(avg_cost_list))  

   plt.figure()  

   plt.plot(xdata,avg_cost_list,'r')

   plt.xlabel('训练轮数')

   plt.ylabel('损失函数')

   plt.title('TF之LiR:基于tensorflow实现手写数字图片识别准确率——Jason Niu')    

   plt.show()    


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
算法研究之不使用临时变量实现两个值的交换
变量值的交换经常在程序中使用,一般方法是使用一个临时变量,交换两个数的值,其实,不使用临时变量,依然可以实现这一功能。 1、常规交换方法 int a,b,temp; temp=a; a=b; b=temp; 2、通过指针 1: inline void Swap(int *a,i...
890 0
RocketMQ消费失败消息深入分析(consumer,broker的具体处理逻辑)
消息队列是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题
1966 0
ML之K-means:基于(完整的)手写数字图片识别数据集利用K-means算法实现图片聚类
ML之K-means:基于(完整的)手写数字图片识别数据集利用K-means算法实现图片聚类
21 0
使用LRU算法缓存图片,android 3.0
在您的UI中显示单个图片是非常简单的,如果您需要一次显示很多图片就有点复杂了。在很多情况下 (例如使用 ListView, GridView 或者 ViewPager控件), 显示在屏幕上的图片以及即将显示在屏幕上的图片数量是非常大的(例如在图库中浏览大量图片)。 在这些控件中,当一个子控件不显示的时候,系统会重用该控件来循环显示 以便减少对内存的消耗。同时垃圾回收机制还会
1008 0
PostgreSQL 最佳实践 - 在线逻辑备份与恢复介绍
背景 PostgreSQL 逻辑备份, 指在线备份数据库数据, DDL以SQL语句形式输出, 数据则可以以SQL语句或者固定分隔符(row格式)的形式输出. 备份时不影响其他用户对备份对象的DML操作. 本文主要介绍一下PostgreSQL提供的逻辑备份工具pg_dump, p
3564 0
前端如何实现图片懒加载(lazyload) 提高用户体验
定义 图片懒加载又称图片延时加载、惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力。
820 0
冒泡排序的多种写法、逻辑
冒泡排序的多种写法、逻辑 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
1255 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载