时间:2021-05-22
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)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下一、CNN模型结构输入层:Mnist数据集(2
说明本例子利用TensorFlow搭建一个全连接神经网络,实现对MNIST手写数字的识别。先上代码fromtensorflow.examples.tutoria
本文实例为大家分享了基于Tensorflow的MNIST手写数字识别分类的具体实现代码,供大家参考,具体内容如下代码如下:importtensorflowast
MNIST是一个非常有名的手写体数字识别数据集,TensorFlow对MNIST数据集做了封装,可以直接调用。MNIST数据集包含了60000张图片作为训练数据
前言:最近开始学习tensorflow框架,选修课让任选一种框架实现mnist手写数字的识别分类。小詹也就随着大流选择了tf框架,跟着教程边学边做,小詹用了不同