2017-08-24 14 views
1

私はコーディングの初心者で、私のプロジェクトは画像分類に関係しています。深い学習クラスの下のコードでは、関数maybe_pickleがありますが、私はいくつかの答えを探してみましたが、 "pickle"は何をし、どのように役立つか分かりません。実際に使用される「ピクルス」とは何ですか?

def maybe_pickle(data_folders, min_num_images_per_class, force=False): 


dataset_names = [] 
    for folder in data_folders: 
    set_filename = folder + '.pickle' 
    dataset_names.append(set_filename) 
    if os.path.exists(set_filename) and not force: 
     # You may override by setting force=True. 
     print('%s already present - Skipping pickling.' % set_filename) 
    else: 
     print('Pickling %s.' % set_filename) 
     dataset = load_letter(folder, min_num_images_per_class) 
     try: 
     with open(set_filename, 'wb') as f: 
      pickle.dump(dataset, f, pickle.HIGHEST_PROTOCOL) 
     except Exception as e: 
     print('Unable to save data to', set_filename, ':', e) 

    return dataset_names 

train_datasets = maybe_pickle(train_folders, 45000) 
test_datasets = maybe_pickle(test_folders, 1800) 
# import pickle 

# Create a list 
test_values = ['test value','test value 2','test value 3'] 


file_Name = "testfile" 
# Open the file for writing 
fileObject = open(file_Name,'wb') 

# This writes the object a to the 
# file named 'testfile' 
pickle.dump(test_values, fileObject) 

# Then we close the fileObject 
fileObject.close() 

# We then open the file for reading 
fileObject = open(file_Name,'r') 

# And the object from the file into var b 
test_values_loaded = pickle.load(fileObject) 
+1

Picklingは、オブジェクトをファイルに保存して後で再度ロードできるようにするためのものです。 – Carcigenicate

+1

[Pickling in Python]の重複の可能性があります(https://stackoverflow.com/questions/7501947/understanding-pickling-in-python) –

+0

また、ゲームを保存するために、 https://stackoverflow.com/questions/8968884/python-serialization-why-pickleおよびhttps://stackoverflow.com/questions/21752259/python-why-pickleを参照してください。 –

答えて

0

最初に公式pickle documentationを確認してください。これは、シリアル化され、ディスクに保存することができるバイトストリームに変換することができます(または逆、ファイルから開始し、これをPythonオブジェクトに戻すことができます)。 (例えば、関数のような関数が一般的にこの目的を果たすのと同じように)