import tensorflow as tf
import numpy as np
#匯入mnist資料
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("data/mnist",one_hot=true)
#選取訓練集、測試集數目
x_train,y_train=mnist.train.next_batch(50000)
x_test,y_test=mnist.test.next_batch(500)
#定義變數大小()
xtr=tf.placeholder("float", [none,784])
xte=tf.placeholder("float", [784])
#計算測試資料與訓練資料l1範數大小(1表示從橫軸進行降維)
distance=tf.reduce_sum(tf.abs(tf.add(xtr, tf.negative(xte, ))), 1)
#求得distance最小的下標(0表示從豎軸計算)
predict=tf.arg_min(distance, 0)
#準確率初始0
accuracy=0
#資料初始化
init=tf.global_variables_initializer()
sess=tf.session()
sess.run(init)
#開始**
for i in range(len(x_test)):
#近鄰演算法:測試集與訓練集對比,返回誤差最小的下標
nn_index=sess.run(predict,feed_dict=)
#np.argmax 返回標籤y中最大數下標(既數值為1的下標),也就是該標籤所對應的數字
print("test :",i,"prection :",np.argmax(y_train[nn_index]),"true class :",np.argmax(y_test[i]))
#統計準確率
if np.argmax(y_train[nn_index])==np.argmax(y_test[i]):
accuracy+=1/len(x_test)
print("accuracy :",accuracy)
TensorFlow經典案例2 實現最近鄰演算法
本次案例需要大家了解關於手寫數字識別 mnist 的資料集的特點和結構 tensorflow實現最近鄰演算法 次案例的前提是了解mnist資料集 手寫數字識別 import tensorflow as tf import numpy as np from tensorflow.examples.tu...
TensorFlow實現knn(k近鄰)演算法
首先先介紹一下knn的基本原理 knn是通過計算不同特徵值之間的距離進行分類。整體的思路是 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。k通常是不大於20的整數。knn演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策...
K 最近鄰法 KNN C 實現
關於knn的介紹可以參考 這裡給出knn的c 實現,用於分類。訓練資料和測試資料均來自mnist,關於mnist的介紹可以參考 從mnist中提取的40幅影象,0,1,2,3四類各20張,每類的前10幅來自於訓練樣本,用於訓練,後10幅來自測試樣本,用於測試,如下圖 實現 如下 knn.hpp if...