tensorflow实现KNN识别MNIST
作者:freedom098 时间:2021-08-10 06:41:50
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)
来源:http://blog.csdn.net/freedom098/article/details/52117330
标签:tensorflow,KNN,MNIST
0
投稿
猜你喜欢
Python中正反斜杠(‘/’和‘\\’)的意义与用法
2023-01-22 14:45:04
Python 中的反转字符串reversed(),切片
2021-05-27 15:03:06
JS高阶函数原理与用法实例分析
2024-05-09 10:36:21
Python错误+异常+模块总结
2023-07-26 03:18:19
Go语言常用条件判断空值逻辑的使用
2024-04-25 15:10:07
浅谈Python2之汉字编码为unicode的问题(即类似\\xc3\\xa4)
2021-12-14 07:07:19
分析详解python多线程与多进程区别
2022-01-19 01:13:54
深入解析Python编程中super关键字的用法
2021-08-24 18:17:10
python 定义函数 返回值只取其中一个的实现
2022-07-29 21:28:21
记一次Vue中$route序列号报错
2024-05-02 17:04:03
JavaScript html5 canvas实现图片上画超链接
2024-04-28 10:19:19
Javascript学习第一季 三
2008-06-27 13:08:00
Python面向对象编程中关于类和方法的学习笔记
2023-07-20 00:13:37
python中利用numpy.array()实现俩个数值列表的对应相加方法
2022-08-26 01:49:25
asp无组件备份与还原数据库
2007-09-24 13:19:00
ASP简单实现数字和字母验证码
2008-10-23 13:52:00
SQL Server 2005的cmd_shell组件的开启方法
2024-01-19 15:18:06
Python中的函数参数(位置参数、默认参数、可变参数)
2021-03-24 21:57:38
区别div和span、relative和absolute、display和visibility
2009-12-13 12:18:00
列表模块是否需要标题
2009-06-25 14:11:00