参考了以下网址
本地加载MNIST数据集
但是很多坑要自己趟一遍才知道。
尝试
按照参考网址,先下载数据集的npz文件到需要修改的函数的路径
~/keras/keras/datasets/mnist.py
把加载的代码
path = get_file(path, origin='https://s3.amazonaws.com/img-datasets/mnist.npz')
f = np.load(path)
替换为
f=np.load('./mnist.npz')
验证
写一个脚本如下
#!/usr/bin/env python
# coding: utf-8
import keras
keras.__version__
from keras.datasets import mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
print('load mnist data over\n')
命名为TS_keras.py存在/home/myname/Documents/test下面
在终端执行python /home/myname/Documents/test/TS_keras.py
发现还是从亚马逊上下载,于是怀疑我修改的代码没有执行,所以按照终端的打印去搜索真正的代码位置。
搜索代码位置
根据终端打印的内容“Using TensorFlow backend.”
在硬盘里搜索,命令如下
find -name "*.py" | xargs grep 'Using TensorFlow backend.'
结果如下
myname@mydesktop:~$ find -name "*.py" | xargs grep 'Using TensorFlow backend.'
./keras/keras/backend/load_backend.py: sys.stderr.write('Using TensorFlow backend.\n')
./keras/build/lib.linux-x86_64-2.7/keras/backend/load_backend.py: sys.stderr.write('Using TensorFlow backend.\n')
./anaconda2/lib/python2.7/site-packages/keras/backend/__init__.py: sys.stderr.write('Using TensorFlow backend.\n')
find: ‘./.cache/dconf’: 权限不够
然后在上述路径的每个py文件中加入不一样的打印,终于找到我真正的keras目录是
/home/myname/anaconda2/lib/python2.7/site-packages/keras/backend
重新在上述路径按照前文方法修改加载函数,果然ok了,原来一切就是路径问题