Assignment1

大概了解了一下tensorflow后终于我打算开始做Assignment 1

Problem1是让显示一下png图像 ipython的image我用不了,提示说Backend Qt4Agg is interactive backend. Turning interactive mode on. 查了一下没解决果断用了PIL,而且习惯了win一下子没改过来输入路径的习惯,闹了半天,伤心。。。

image_files = os.listdir(train_folders[1]) file_path=train_folders[1]+"/%s"%image_files[1] tmp=Image.open(file_path) tmp.show()

Problem 2

Let's verify that the data still looks good. Displaying a sample of the labels and images from the ndarray. Hint: you can use matplotlib.pyplot.

利用给的代码,我们将很大的数据存储成为了.pickle形式,以训练集合为例,每个类别都存储为对应标签的.pickle文件。问题想让我们使用matplotlib.pyplot来画出来我们存储的数据,来确保存储的数据能够对应回我们直观上的图片,我对于pickle也是啥都不知道啊,上网查了一下pickle的读取方法。

注意在存储数据前,数据做过0均值化和归一化,所以我们想要显示需要一些反操作。

效果如图


for index,i in enumerate(train_datasets):
plt.subplot(4, 4, index+1)
file_path=i
f = file(file_path, 'rb')
a2 = pickle.load(f)
im1 = a2[0, :, :]
im1=im1*pixel_depth+pixel_depth/2

tmp=Image.fromarray(im1)
plt.title(chr(65+index))
plt.imshow(tmp)

plt.show()

Problem 3

Another check: we expect the data to be balanced across classes. Verify that.

不太懂这个题目是什么意思,直接统计一下给的train_labels的个数。看出来十个类,每个类20k个数据,所以应该是均衡的把。

Problem 4

Convince yourself that the data is still good after shuffling!

我们可以看一下代码,就是把数据打乱了顺序,并没有做其他改动。所以如果我们还想看一下这个最后的pickle。 就随便看一张好了,和之前的差不多

plt.figure('subplot') f = file(pickle_file, 'rb') a = pickle.load(f) tmp=a.get('train_dataset')[0,:,:] tmp=tmp*pixel_depth+pixel_depth/2 img=Image.fromarray(tmp) plt.imshow(img) plt.show()

这里说一下,plt的imshow可以直接把矩阵作为图片打印出来,但是会对数据做normalize,且会是彩色的。 所以我建议打印图片使用第一种方式。可是我们可以看到如果用第一个PIL去打印图片,却不能和plt结合(貌似?) 当然我没有仔细读imshow的文档库,理论上可以控制这些,这里就不去细究了,以后如果要用到再细查。

第五个和第六个问题我就不打算按照它的去引用sklearn.linear_model里的模型了。刚好我们之前学习了tf的mnist例子。我直接照着这个例子写了个logistics用在这里了。可以看到全部数据训练5轮以后的正确率是89%. 我们没有动参数,而且仅仅是个logistc回归。所以10个错一个这个结果还是挺可以的。

值得一提的是我这里的tensor shape因为pro4给的代码存的pickle文件是[?,28,28]类型 所以我想直接把占位符里的shape改成这样,可是怎么都改不成,无奈把数据处理了一下变成[?,784] 这里我感觉应该是可以用[?,28,28]的,只是不能直接就这么改。希望通过进一步学习闹明白这个问题。

另外就是,next_batch这一步是需要自己写的。而为了避免把大堆的数据传来传去,把数据写成一个类是很好的办法。我也是参照了mnist里面它的例子仿照写了一个。

results matching ""

    No results matching ""