报错出现在我要访问MNIST数据集网站的过程中
这个错误是因为访问 http://yann.lecun.com/exdb/mnist/
时被拒绝了。HTTP 403 错误意味着服务器理解请求但拒绝提供服务。
解决这个问题的方法有以下几种:
1. 更换数据下载链接
尝试从其他可用的镜像站点下载MNIST数据集,比如:
url_base = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'
key_file = {
'train_img':'train-images-idx3-ubyte.gz',
'train_label':'train-labels-idx1-ubyte.gz',
'test_img':'t10k-images-idx3-ubyte.gz',
'test_label':'t10k-labels-idx1-ubyte.gz'
}
2. 使用更强的用户代理
有时候服务器会根据用户代理来过滤请求,可以尝试使用更强的用户代理:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
def _download(file_name):
file_path = dataset_dir + "/" + file_name
if os.path.exists(file_path):
return
print("Downloading " + file_name + " ... ")
request = urllib.request.Request(url_base + file_name, headers=headers)
with urllib.request.urlopen(request) as response, open(file_path, 'wb') as out_file:
data = response.read()
out_file.write(data)
print("Done")
当我尝试完这两个方法后就成功解决报错了