flash网站优缺点,望城做网站,网站建设案例效果,网站能看出建设时间吗方法来自机器之心公众号
首先下载mnist数据集#xff0c;并将里面四个文件夹解压出来#xff0c;下载方法见前面的博客
import tensorflow as tf
import numpy as np
import osdataset_path rD:\PycharmProjects\tensorflow\MNIST_data # 这是我存放mnist数据集的位置
is_…方法来自机器之心公众号
首先下载mnist数据集并将里面四个文件夹解压出来下载方法见前面的博客
import tensorflow as tf
import numpy as np
import osdataset_path rD:\PycharmProjects\tensorflow\MNIST_data # 这是我存放mnist数据集的位置
is_training True# 定义加载mnist的函数
def load_mnist(path, is_training):# trX将加载储存所有60000张灰度图fd open(os.path.join(path, train-images.idx3-ubyte))loaded np.fromfile(filefd, dtypenp.uint8)trX loaded[16:].reshape((60000, 28, 28, 1)).astype(np.float)fd open(os.path.join(path, train-labels.idx1-ubyte))loaded np.fromfile(filefd, dtypenp.uint8)trY loaded[8:].reshape((60000)).astype(np.float)#teX将储存所有一万张测试用的图片fd open(os.path.join(path, t10k-images.idx3-ubyte))loaded np.fromfile(filefd, dtypenp.uint8)teX loaded[16:].reshape((10000, 28, 28, 1)).astype(np.float)fd open(os.path.join(path, t10k-labels.idx1-ubyte))loaded np.fromfile(filefd, dtypenp.uint8)teY loaded[8:].reshape((10000)).astype(np.float)# 将所有训练图片表示为一个4维张量 [60000, 28, 28, 1]其中每个像素值缩放到0和1之间trX tf.convert_to_tensor(trX / 255., tf.float32)# one hot编码为 [num_samples, 10]trY tf.one_hot(trY, depth10, axis1, dtypetf.float32)teY tf.one_hot(teY, depth10, axis1, dtypetf.float32)# 训练和测试时返回不同的数据if is_training:return trX, trYelse:return teX / 255., teYdef get_batch_data():trX, trY load_mnist(dataset_path, True)# 每次产生一个切片,每次从一个tensor列表中按顺序或者随机抽取出一个tensor放入文件名队列data_queues tf.train.slice_input_producer([trX, trY])# 对队列中的样本进行乱序处理X, Y tf.train.shuffle_batch(data_queues,batch_sizebatch_size,capacitybatch_size * 64,min_after_dequeuebatch_size * 32,allow_smaller_final_batchFalse)return (X, Y)
这里为什么要去掉训练集的前16个数字和标签的前8个数字呢我看了一下训练集train-images.idx3-ubyte文件确实有47040016个数字比28*28*6000047040000多了16个数字训练集标签train-labels.idx1-ubyte文件下有60008个数字也多出来8个数字下面是mnist训练集的样本和标签的数据结构 可以看出在train-images.idx3-ubyte中第一个数为32位的整数魔数图片类型的数第二个数为32位的整数图片的个数第三和第四个也是32为的整数分别代表图片的行数和列数接下来的都是一个字节的无符号数即像素值域为0~255