neural-networks-and-deep-learning mnist_pca.py

来源:互联网 发布:西亚斯网络管理 编辑:程序博客网 时间:2024/05/17 05:54

这个程序主要的功能是通过pca来提取28*28的图片的pca然后还原。

"""mnist_pca~~~~~~~~~Use PCA to reconstruct some of the MNIST test digits."""# My librariesimport mnist_loader# Third-party librariesimport matplotlibimport matplotlib.pyplot as pltimport numpy as npfrom sklearn.decomposition import RandomizedPCA# Trainingtraining_data, validation_data, test_data = mnist_loader.load_data_wrapper()#此处就是将n_conponents设置为向量长度为99pca = RandomizedPCA(n_components=99)nn_images = [x for (x, y) in training_data]#此处上一步提取的x是一个列向量,所以按照列来进行concatenatepca_images = np.concatenate(nn_images, axis=1).transpose()pca_r = pca.fit(pca_images)# Try PCA on first ten test imagestest_images = validation_data[0][0].reshape((1,784));test_outputs = pca_r.inverse_transform(pca_r.transform(test_images))# Plot the first ten test images and the corresponding outputsfig = plt.figure()ax = fig.add_subplot(111)#此处的-1就是这一个维度是根据其他的维度进行计算出来的images_in = [validation_data[j][0].reshape(-1, 28) for j in range(1)]images_out = [test_outputs[j].reshape(-1, 28) for j in range(1)]image_in = np.concatenate(images_in, axis=1)image_out = np.concatenate(images_out, axis=1)image = np.concatenate([image_in, image_out])ax.matshow(image, cmap = matplotlib.cm.binary)plt.xticks(np.array([]))plt.yticks(np.array([]))plt.show()
0 0
原创粉丝点击