代码块1:读入MNIST数据
p70duruMNIST.py:
import sys, os
sys.path.append(os.pardir) # 为了导入父目录中的文件而进行的设定
from dataset.mnist import load_mnist
(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True,
normalize=False)
print(x_train.shape)
print(t_train.shape)
print(x_test.shape)
print(t_test.shape)
分析:
import sys, os
导入os模块与sys模块
os模块:提供系统级别的操作
sys模块:提供解释器相关的操作
参考:https://blog.csdn.net/qq_42874945/article/details/81911931
==================================================
sys.path.append(os.pardir)
为了导入父目录中的文件而进行的设定。
参考:https://www.ituring.com.cn/book/tupubarticle/21862
用来读入 MNIST 图像的文件在本书提供的源代码的
dataset
目录下。并且,我们假定了这个 MNIST 数据集只能从ch01
、ch02
、ch03
、…、ch08
目录中使用,因此,使用时需要从父目录(dataset
目录)中导入文件,为此需要添加sys.path.append(os.pardir)
语句。观察本书源代码可知,上述代码在
mnist_show.py
文件中。mnist_show.py
文件的当前目录是ch03
,但包含load_mnist()
函数的mnist.py
文件在dataset
目录下。因此,mnist_show.py
文件不能跨目录直接导入mnist.py
文件。sys.path.append(os.pardir)
语句实际上是把父目录deep-learning-from-scratch
加入到sys.path
(Python 的搜索模块的路径集)中,从而可以导入deep-learning-from-scratch
下的任何目录(包括dataset
目录)中的任何文件。——译者注
已知sys.path返回的是一个列表
python列表(参考:https://www.runoob.com/python/python-lists.html):
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
本机中测试sys.path的测试结果如下:
import sys
print(sys.path)
#运行结果
['F:\\学习代码\\深度学习\\深度