前提
pickle関数の使い方がよくわかりません。
前提として、ディープラーニングを実装するために必要なデータセットがバイナリファイルとして保存されています。あるパスからこのバイナリファイルを呼び出すために非pickle関数が使われていました。
実現したいこと
今回私がやりたいことは、デフォルトのプログラムを用いて自前のデータセットでディープラーニングを実装したいと思っています。
自前のデータセットはテキストファイルに保存されています。
そのため、一度以下のようにpickle関数でバイナリ変換を行い、非pickle関数で呼び出したいと思っています。
python
1#pickle 2with open(file_name, 'wb') as f: 3 pickle.dump(binary_file, f) 4 5#非pickle 6with open(file_name,'rb') as f: 7 pickle.load(file_name,f)
発生している問題
以下のコードにテキストファイルをpickle関数でバイナリ変換を行い、15行目でロードしてくるようなプログラムに書いたいのですが、どう書いたらいいのかがわかりません。
よろしくお願いいたします。
該当のソースコード
python
1class HEARTBEAT3(DenseDesignMatrix): 2 def __init__(self, which_set): 3 4 self.path = '/home/HEARTBEAT-3' 5 self.img_size = 125 6 if which_set in {'train'}: 7 X, y = self.load_data() 8 elif which_set in {'test', 'valid'}: 9 X, y = self.load_data_test() 10 11 X = X.astype('float32') 12 13 super(HEARTBEAT3, self).__init__(X=X, y=y) 14 15 def unpickle(self, file_name): 16 with open(file_name, 'rb') as f: 17 if sys.version_info.major == 2: 18 return pickle.load(f) 19 elif sys.version_info.major == 3: 20 return pickle.load(f, encoding='latin-1') 21 22 def load_data(self): 23 24 nb_train_samples = 2475 25 fpath = os.path.join(self.path, 'test_batch') 26 batch_dict = self.unpickle(fpath) 27 data = batch_dict['data'] 28 labels = batch_dict['labels'] 29 30 X = np.zeros((495, self.img_size), dtype='uint8') 31 y = np.zeros((495,1), dtype='uint8') 32 33 X = data.reshape(495, self.img_size) 34 y[:, 0] = labels 35 36 return X, y 37
補足情報(FW/ツールのバージョンなど)
Ubuntu18.04
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/22 17:33
2022/12/22 18:36
2022/12/23 03:42
2022/12/23 05:37
2022/12/23 06:30 編集
2022/12/23 06:32
2022/12/23 07:21
2022/12/23 07:27
2022/12/24 06:46 編集