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のようにエラーが出た。