PermissionError:[Errno 13]执行input_data.read_data_sets(..)

时间:2016-11-29 12:58:13

标签: python tensorflow

我pip安装了Tensor Flow,所以我没有tensorflow.examples所以我从GitHub获得了源input_data。我怎么会收到以下错误。

  

PermissionError:[Errno 13]权限被拒绝:'C:\ Users \ Nikhil \ AppData \ Local \ Temp \ tmp5gr8f26y'

这是我的代码。

import input_data
mnist = input_data.read_data_sets("/MNIST_data/", one_hot = True)

我该如何解决这个问题?还有另一个线程处理完全相同的问题,但该解决方案并没有解决我的问题。我现在应该怎么做? input_data.py文件位于我的项目目录中。我的项目目录如下所示。

tensor_flow
          |
          tf.py
          input_data.py

我已经尝试过用Stack Overflow中描述的所有方法。请不要指出重复。

  

runfile('C:/ Users / Nikhil / Desktop / Tensor Flow / tensf.py',wdir ='C:/ Users / Nikhil / Desktop / Tensor Flow')   回溯(最近一次调用最后一次):

     

文件“”,第1行,in       runfile('C:/ Users / Nikhil / Desktop / Tensor Flow / tensf.py',wdir ='C:/ Users / Nikhil / Desktop / Tensor Flow')

     

文件“C:\ Users \ Nikhil \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py”,第866行,在runfile中       execfile(filename,namespace)

     

文件“C:\ Users \ Nikhil \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py”,第102行,在execfile中       exec(compile(f.read(),filename,'e​​xec'),namespace)

     

文件“C:/ Users / Nikhil / Desktop / Tensor Flow / tensf.py”,第26行,in       mnist = input_data.read_data_sets(“MNIST_data /”,one_hot = True)

     

文件“C:\ Users \ Nikhil \ Anaconda3 \ lib \ site-packages \ tensorflow \ contrib \ learn \ python \ learn \ datasets \ mnist.py”,第211行,在read_data_sets中       SOURCE_URL + TRAIN_IMAGES)

     

文件“C:\ Users \ Nikhil \ Anaconda3 \ lib \ site-packages \ tensorflow \ contrib \ learn \ python \ learn \ datasets \ base.py”,第141行,在maybe_download中       urllib.request.urlretrieve(source_url,temp_file_name)

     

文件“C:\ Users \ Nikhil \ Anaconda3 \ lib \ urllib \ request.py”,第198行,在urlretrieve中       tfp = open(filename,'wb')

     

PermissionError:[Errno 13]权限被拒绝:'C:\ Users \ Nikhil \ AppData \ Local \ Temp \ tmpry0jmpiu'

2 个答案:

答案 0 :(得分:1)

好的,这样做:

创建目录" MNIST_data"在这个位置:

tensorflow/contrib/learn/python/learn/datasets/

复制并提取该文件夹中的所有下载文件。这最有可能解决你的问题。

我猜错误是python在下载后无法打开.gz文件。

答案 1 :(得分:0)

这是read_data_sets()函数:

def read_data_sets(train_dir,
                   fake_data=False,
                   one_hot=False,
                   dtype=dtypes.float32,
                   reshape=True,
                   validation_size=5000):

在此函数中,此代码将运行:

TRAIN_IMAGES = 'train-images-idx3-ubyte.gz'
TRAIN_LABELS = 'train-labels-idx1-ubyte.gz'
TEST_IMAGES = 't10k-images-idx3-ubyte.gz'
TEST_LABELS = 't10k-labels-idx1-ubyte.gz'

local_file = base.maybe_download(TRAIN_IMAGES, train_dir,
                                 SOURCE_URL + TRAIN_IMAGES)
with open(local_file, 'rb') as f:
  train_images = extract_images(f)

maybe_download()正在Windows临时目录中下载该文件,然后尝试访问它。

但由于受限制的许可或其他原因,它无法读取该文件。

所以我想尝试处理文件权限。我在linux上或者会为你测试它。

您可以执行一种解决方法,手动将数据下载到当前工作文件夹。你可以从这里下载:

TRAIN_IMAGES = 'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz'
TRAIN_LABELS = 'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz'
TEST_IMAGES = 'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz'
TEST_LABELS = 'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'