らんだむな記憶

blogというものを体験してみようか!的なー

ぴっくるー

ud730ネタ。

pickle_file = 'notMNIST.pickle'

try:
  f = open(pickle_file, 'wb')
  save = {
    'train_dataset': train_dataset,
    'train_labels': train_labels,
    'valid_dataset': valid_dataset,
    'valid_labels': valid_labels,
    'test_dataset': test_dataset,
    'test_labels': test_labels,
    }
  pickle.dump(save, f, pickle.HIGHEST_PROTOCOL)
  f.close()
except Exception as e:
  print('Unable to save data to', pickle_file, ':', e)
  raise

とかでdumpしたデータは

pickle_file = 'notMNIST.pickle'

try:
    with open(pickle_file, "rb") as f:
        all_data = pickle.load(f)
except UnicodeDecodeError as e:
    print("UnicodeDecodeError occurred: {0}".format(e))
except:
    print("an error occurred", sys.exc_info()[0])
else:
    print("load finished")

とかで読み込めるんだな。

train_dataset = all_data["train_dataset"]

とかでセーブした時のデータにアクセス可能。660MBくらいのピックルでも数秒でロードできるもんだ。そっか。そんなもんなのか...。
jupyter notebook便利だな。

"rb" で読まずにデフォルトの "r" のままだとPython pickle error: UnicodeDecodeError - Stack Overflowのようにエラーが出た。