Cifar-10データセットをロードしようとしています。使用しているコードはthisクラス(私は登録されていません)からです。私は、メモリエラーがあると話し続けています。それをロードするコードは次のとおりです。あるデータセットを読み込むときにPythonでメモリエラーが発生する
X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)
コールへ:
def load_CIFAR_batch(filename):
""" load single batch of cifar """
with open(filename, 'rb') as f:
datadict = pickle.load(f)
X = datadict['data']
Y = datadict['labels']
X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1).astype("float")//This is the important line
Y = np.array(Y)
return X, Y
それは上記の7行目で立ち往生として停止します。順番に呼び出します
def load_CIFAR10(ROOT):
""" load all of cifar """
xs = []
ys = []
for b in range(1,6):
f = os.path.join(ROOT, 'data_batch_%d' % (b,))
X, Y = load_CIFAR_batch(f)//this is the important line
xs.append(X)
ys.append(Y)
Xtr = np.concatenate(xs)
Ytr = np.concatenate(ys)
del X, Y
Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch'))
return Xtr, Ytr, Xte, Yte
メモリエラー。
Windowsのタスクマネージャを使用してメモリ使用量を調べたところ、システムで実行中の他のプログラムが何であっても、実行するたびに〜800,000kbを使用していました。私は私のシステムにも8GBのRAMを持っています。また、過去のPythonではデータのギガバイトを使用していましたが、このプロジェクトでは800,000kbを超えません。奇妙なのは、タイプを「float32」に変更してから、約40万でメモリエラーが発生し、それ以上には上がらないということです。私はそれが違いを生むならIpythonを使っています。 誰が何が起こっているのか、これを修正する方法についてのアイデアはありますか?
編集:これは、約4GBのメモリが解放されたときにも発生しました。