关于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

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

  1. 不要用windows的环境,里面很多配置的问题,在你们不熟悉的情况下,非常不建议使用。

  2. python不要用3.9,用3.5.

  3. 这个问题,我猜测是路径的问题,所以可以尝试在代码中加一些log,定位下具体是从什么地方出现读取不到数据的。再去具体看原因。

0
1
慕运维2318191
好的谢谢老师
2021-01-25
共1条回复

Python3+TensorFlow打造人脸识别智能小程序

理论与实战项目双管齐下,让AI技术真正落地应用,适合毕设展示。

1091 学习 · 538 问题

查看课程