采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在2-5数据处理与模型图构建(1)中,出现了函数: def load_data(filename): ""“read data from data file.”"" with open(filename, ‘rb’) as f: data = pickle.load(f, encoding=‘bytes’) return data[b’data’], data[b’labels’]
我也遇到这个问题了,后面加了encoding = 'bytes',同时还发现,data[b’labels’]的type不是str了,反而变成了bytes
不过最终也不影响输出和读入数据
同学你好,你检查下你用的python版本,你贴的代码是python3的,如果用的是python2的环境,那么会失败。
pickle.load是反序列化。参数是bytes是由如何存储数据决定的,在我们使用的例子里,是bytes。你可以试试python2的用法
def load_data(filename): """read data from data file.""" with open(filename, 'rb') as f: data = cPickle.load(f) return data['data'], data['labels']
请教老师,如果用python3,谷歌的colab里面没有cPickle这个包,只有前面一位同学提问里的pickle.load,所以我们只能用python3,输出的结果每一个都会带'b',会是: with open(os.path.join(CIFAR_DIR,"data_batch_1"),'rb') as f: data=pickle.load(f,encoding='bytes') print(type(data)) print(data.keys()) 输出: <class 'dict'> dict_keys([b'batch_label', b'labels', b'data', b'filenames']) 每一个都带了个'b’
key上带‘b’倒还好,这样取出来的数据能正常读取么?
可以正常读
登录后可查看更多问答,登录/注册
深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN
1.5k 9
1.6k 8
1.1k 7
1.2k 7
1.9k 7