tensorflow实现KNN识别MNIST


Posted in Python onMarch 12, 2018

KNN算法算是最简单的机器学习算法之一了,这个算法最大的特点是没有训练过程,是一种懒惰学习,这种结构也可以在tensorflow实现。

KNN的最核心就是距离度量方式,官方例程给出的是L1范数的例子,我这里改成了L2范数,也就是我们常说的欧几里得距离度量,另外,虽然是叫KNN,意思是选取k个最接近的元素来投票产生分类,但是这里只是用了最近的那个数据的标签作为预测值了。

__author__ = 'freedom' 
import tensorflow as tf 
import numpy as np 
 
def loadMNIST(): 
 from tensorflow.examples.tutorials.mnist import input_data 
 mnist = input_data.read_data_sets('MNIST_data',one_hot=True) 
 return mnist 
def KNN(mnist): 
 train_x,train_y = mnist.train.next_batch(5000) 
 test_x,test_y = mnist.train.next_batch(200) 
 
 xtr = tf.placeholder(tf.float32,[None,784]) 
 xte = tf.placeholder(tf.float32,[784]) 
 distance = tf.sqrt(tf.reduce_sum(tf.pow(tf.add(xtr,tf.neg(xte)),2),reduction_indices=1)) 
 
 pred = tf.argmin(distance,0) 
 
 init = tf.initialize_all_variables() 
 
 sess = tf.Session() 
 sess.run(init) 
 
 right = 0 
 for i in range(200): 
  ansIndex = sess.run(pred,{xtr:train_x,xte:test_x[i,:]}) 
  print 'prediction is ',np.argmax(train_y[ansIndex]) 
  print 'true value is ',np.argmax(test_y[i]) 
  if np.argmax(test_y[i]) == np.argmax(train_y[ansIndex]): 
   right += 1.0 
 accracy = right/200.0 
 print accracy 
 
if __name__ == "__main__": 
 mnist = loadMNIST() 
 KNN(mnist)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈Python 中整型对象的存储问题
May 16 Python
Python性能提升之延迟初始化
Dec 04 Python
Python中单、双下划线的区别总结
Dec 01 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
python中join()方法介绍
Oct 11 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
浅析Python 序列化与反序列化
Aug 05 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
浅谈Python中的正则表达式
Jun 28 Python
Python操作MySQL模拟银行转账
Mar 12 #Python
python3 图片referer防盗链的实现方法
Mar 12 #Python
tensorflow构建BP神经网络的方法
Mar 12 #Python
Python管理Windows服务小脚本
Mar 12 #Python
python实现教务管理系统
Mar 12 #Python
python编写弹球游戏的实现代码
Mar 12 #Python
python学生管理系统代码实现
Apr 05 #Python
You might like
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
Vue分页效果与购物车功能
2019/12/13 Javascript
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python argv用法详解
2016/01/08 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python中自带的三个装饰器的实现
2019/11/08 Python
家长给孩子的评语
2014/01/30 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
代理协议书范本
2014/04/22 职场文书
淘宝好评语大全
2014/05/05 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
环保建议书范文
2015/09/14 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js