love萌萌loli 2017-10-26 13:33 采纳率: 0%
浏览 1720
已结题

python函数 open和os.path.join,pickle.load冲突,不知道怎么解决,求帮忙

我准备加载cifar集里面的数据,用的是CS231n,里面的代码,但是实际上代码中存在一个很严重的错误,程序如下

import  pickle
import numpy as np
import os

datadir='/home/qwe2508/study/cifar-10-batches-bin'

def load_cifar_batch(filename):
    with open(filename,'rb') as f :
        datadict=pickle.load(f,encoding='bytes')
        x=datadict[b'data']
        y=datadict[b'labels']
        x=x.reshape(10000,3,32,32).transpose(0,2,3,1).astype('float')
        y=np.array(y)
        return x,y

def load_cifar10(root):
    xs=[]
    ys=[]
    for b in range(1,6):
        f=os.path.join(root,'data_batch_%d' % (b,))
        x,y=load_cifar_batch(f)
        xs.append(x)
        ys.append(y)
    Xtrain=np.concatenate(xs) #1
    Ytrain=np.concatenate(ys)
    del x ,y
    Xtest,Ytest=load_cifar_batch(os.path.join(root,'test_batch')) #2
    return Xtrain,Ytrain,Xtest,Ytest

x_train,y_train,x_test,y_test=load_cifar10(datadir)

如果我的os.path.join,文件不加。bin,那么open函数会报错,没有此文件,如果加了,pickle.load会报错,综合错误。
实在知道怎么解决,求大牛拯救。

  • 写回答

1条回答 默认 最新

  • zhydw317 2017-10-27 03:01
    关注

    把这个改成你的文件路径试试
    datadir='/home/qwe2508/study/cifar-10-batches-bin'

    评论

报告相同问题?

悬赏问题

  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决