关于cifar载入运行问题:
来源:4-5 Cifar10数据解析编程案例

慕运维2318191
2021-01-23
关于cifar载入运行问题:
老师我这边是直接从官网下载cifar的
但是运行只显示一个空数组,没有产生你视频中的数字
望老师抽空解答
我的系统是win10、python是3.9
下面是代码
import urllib
import os
import sys
import tarfile
import glob
import pickle
def download_and_uncompress_tarball(tarball_url,dataset_dir):
filename = tarball_url.split(’/’)[-1]
filepath = os.path.join(dataset_dir, filename)
def _progerss(count, block_size, total_size, filepath=None):
sys.stdout.write(’\r>> Downloading %s %.lf%%’ % (
filename, float(count * block_size) / float(total_size) * 100.0))
sys.stdout.flush()
filepath, _ = urllib.request.urlretrieve(tarball_url, filepath, _progerss)
print()
statinfo = os.stat(filepath)
print(‘Successfully downloaded’,filename,statinfo.st_size, ‘bytes.’)
tarfile.open(filepath, ‘r:gz’).extractall(dataset_dir)
classification = [ [‘airplane’,
‘automobile’,
‘bird’,
‘cat’,
‘deer’,
‘dog’,
‘frog’,
‘horse’,
‘ship’,
‘truck’]]
def unpickle(file):
import pickle
with open(file, ‘rb’) as fo:
dict = pickle.load(fo, encoding=‘bytes’)
return dict
DATA_URL = 'http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz’
DATA_DIR = ‘data’
#download_and_uncompress_tarball(DATA_URL,DATA_DIR)
def unpickle(file):
import pickle
with open(file, ‘rb’) as fo:
dict = pickle.load(fo, encoding=‘bytes’)
return dict
See PyCharm help at https://www.jetbrains.com/help/pycharm/
folders = 'C:/Users/yanguang/PycharmProjects/pythonProject2/date/image/cifar-10-batches-py’
trfiles = glob.glob(folders + “/data_batch*”)
data = []
labels = []
for file in trfiles:
dt = unpickle(file)
data +=list(dt[b"date"])
labels += list(dt[b"labels"])
print(labels)
运行结果:
C:\Users\yanguang\PycharmProjects\pythonProject2\venv\Scripts\python.exe C:/Users/yanguang/PycharmProjects/pythonProject2/main.py
[]
Process finished with exit code 0
1回答
-
会写代码的好厨师
2021-01-23
不要用windows的环境,里面很多配置的问题,在你们不熟悉的情况下,非常不建议使用。
python不要用3.9,用3.5.
这个问题,我猜测是路径的问题,所以可以尝试在代码中加一些log,定位下具体是从什么地方出现读取不到数据的。再去具体看原因。
012021-01-25
相似问题