Re: [問題] 關於用函數return 字典問題消失
<補上code>
資料描述:我有一個資料夾、裡面有五個子資料夾
五個子資料夾的名稱都是花的名字(類別)
裡面放的是該種花的圖片
(下載網址 http://download.tensorflow.org/example_images/flower_photos.tgz )
然後這個函數的目的是要把圖片讀進來並分成訓練組、驗證組和測試組三種
※ 引述《kkagt (乎嘎蝦嘎)》之銘言:
我有一個函數會造出一個字典並將它return
大致長這樣
input_data = '/flower_data'
def create_image_list(testing_percentage, validation_percentage):
#所有圖片均存在result這個字典裡
#key=類別名稱, value=所有圖片(也是字典)
result = {}
#獲取所有子目錄
sub_dirs = [x[0] for x in os.walk(input_data)]
#得到的第一個目錄是當前目錄
is_root_dir = True
for sub_dir in sub_dirs:
if is_root_dir:
is_root_dir = False
continue
#獲取所有有效圖片文件
extensions = ['jpg', 'jpeg', 'JPG', 'JPEG']
file_list = []
dir_name = os.path.basename(sub_dir)
for extension in extensions:
file_glob = os.path.join(input_data, dir_name, '*.' + extension)
file_list.extend(glob.glob(file_glob))
if not file_list: continue
#利用目錄名稱得到類別名稱
label_name = dir_name.lower()
training_images = []
testing_images = []
validation_images = []
for file_name in file_list:
base_name = os.path.basename(file_name)
chance = np.random.randint(100)
if chance < validation_percentage:
validation_images.append(base_name)
elif chance < (test_percentage + validation_percentage):
testing_images.append(base_name)
else:
training_images.append(base_name)
result[label_name] = {'dir': dir_name,
'training': training_images,
'testing': testing_images,
'validation': validation_images}
return result
如果我直接執行函數內容可以看到keys長這樣
In[29]: result.keys()
Out[29]: dict_keys(['roses', 'sunflowers', 'dandelion', 'tulips', 'daisy'])
但是如果我引用函數後再看keys會變成這樣
In[30]: image_lists = create_image_list(test_percentage, validation_percentage)
In[31]: image_lists.keys()
Out[31]: dict_keys(['daisy'])
看起來只有最後一個keys被傳回來...其他都不見了
請問這是發生了什麼事....QQ
如果需要把函數完整貼上來麻煩推文跟我說
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.83.205
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1501839350.A.26D.html
※ 編輯: kkagt (220.132.83.205), 08/04/2017 17:52:06
推
08/04 18:51,
08/04 18:51
→
08/04 21:45,
08/04 21:45
→
08/04 22:09,
08/04 22:09
→
08/05 01:30,
08/05 01:30
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.83.205
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1502069074.A.F7A.html
※ 編輯: kkagt (220.132.83.205), 08/07/2017 09:42:34
→
08/07 10:02, , 1F
08/07 10:02, 1F
→
08/07 10:02, , 2F
08/07 10:02, 2F
→
08/07 10:03, , 3F
08/07 10:03, 3F
→
08/07 10:07, , 4F
08/07 10:07, 4F
→
08/07 10:08, , 5F
08/07 10:08, 5F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):