资源简介
python文件,使用pycharm即可运行。文本标注了详细的代码。
代码片段和文件信息
# 加载mnist数据
import tensorflow as tf
import numpy as np
import random
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets(‘MNIST_data‘one_hot=True)
# 设置属性
trainNum=60000 # 训练图片总数
testNum=10000 # 测试图片总数
trainSize=50000 # 训练时候用到的图片数量
testSize=5 # 测试时候用到的图片数量
k=4 # 距离最小的K个图片
# 生成不重复的随机数trainIndex:(500)testIndex:(5)
trainIndex=np.random.choice(55000trainSizereplace=False)
testIndex=np.random.choice(testNumtestSizereplace=False)
print(trainIndex.shapetestIndex.shape)
# 生成训练数据
trainData=mnist.train.images[trainIndex]
trainLabel=mnist.train.labels[trainIndex]
# 生成测试数据
testData=mnist.test.images[testIndex]
testLabel=mnist.test.labels[testIndex]
print(‘trainData.shape=‘trainData.shape)
print(‘trainLabel.shape=‘trainLabel.shape)
print(‘testData.shape=‘testData.shape)
print(‘testLabel.shape=‘testLabel.shape)
print(‘testLabel=‘testLabel)
# 设置训练数据的变量
trainDataInput=tf.placeholder(shape=[None784]dtype=tf.float32)
trainLabelInput=tf.placeholder(shape=[None10]dtype=tf.float32)
testDataInput=tf.placeholder(shape=[None784]dtype=tf.float32)
testLabelInput=tf.placeholder(shape=[None10]dtype=tf.float32)
# 使用曼哈顿距离来计算KNN距离
f1=tf.expand_dims(testDataInput1) # 用expand_dim()来增加维度将原来的testDataInput扩展成三维的f1:(?1784)
f2=tf.subtract(trainDataInputf1) # subtract()执行相减操作,即 trainDataInput-testDataInput 最终得到一个三维数据
f3=tf.reduce_sum(tf.abs(f2)reduction_indices=2) # tf.abs()求数据绝对值tf.reduce_sum()完成数据累加,把数据放到f3中
# 执行
with tf.Session() as sess:
p1=sess.run(f1feed_dict={testDataInput:testData[0:testSize]}) # 取testData中的前testSize个样本来代替输入的测试数据
print(p1)
print(‘p1=‘p1.shape)
p2=sess.run(f2feed_dict={trainD
评论
共有 条评论