mxnet靜態版 創建rec idx lst文件教程

mxnet靈活的創建rec lst idx教程

mxnet version >= 1.3

'''
MXNet lst rec idx 文件生成 [適合任意的標籤數量,自定義生成最靈活合適]
1. lst文件自定義創建,格式: index label_1 label_n image_abs_path_name; 
                eg: 0 2 3 /mnt/data/my.jpg [label需要從0開始]

2. rec idx文件創建,使用mxnet/tools/im2rec.py ,命令行執行 python im2rec.py lst_path image_data_root --pack-label
                eg: python im2rec.py /mnt/data/train.lst /mnt/data/image --pack-label  生成train.rec train.idx
val.lst val.rec val.idx 同理;
'''

1. 創建lst文件,無論分類,還是目標檢測都可以使用 多標籤

code:

def create_lst_train_val_file(img_root_path, train_lst_file_save_path, val_lst_file_save_path):
    '''
    :param img_root_path:  所有圖片均放在一個文件夾;若分開放在不同的文件夾,只需寫入相對路徑即可
    :param train_lst_file_save_path: 
    :param val_lst_file_save_path:
    :return:  創建人臉-gender-age訓練測試集lst文件, 區分 trian/val = 4:1
    '''
    name_list = [f for f in os.listdir(img_root_path) if f.endswith('jpg')]
    random.shuffle(name_list)
    num = len(name_list)
    # trian.lst
    with open(train_lst_file_save_path, 'w+') as f:
        for i, img_name in enumerate(name_list[:int(num*0.8)]):
            lis = img_name.split('_')
            age, gender = lis[0], lis[1]
            f.write(str(i) + '\t' +
                    str(1-int(gender)) + '\t' + age + '\t' +
                    img_name + '\n')
    f.close()
    # val.lst
    with open(val_lst_file_save_path, 'w+') as f:
        for i, img_name in enumerate(name_list[int(num*0.8):]):
            lis = img_name.split('_')
            # 要求 age需要在[1,100]之間,大於100的,網絡會處理成100;gender需要male=1,female=0;而數據集正相反
            age, gender = lis[0], lis[1]
            f.write(str(i) + '\t' +
                    str(1-int(gender)) + '\t' + age + '\t' +
                    img_name + '\n')
    f.close()
    return

2. 調用 im2rec.py 生成train.rec train.idx / val.rec val.idx [按照教程即可]

 

#########################################

後續補充如何寫入語義分割的標籤; 但是還是覺得pytorch好用,我也會用tensorflow的語義分割標籤,暫時不會mxnet的語義分割標籤  後續繼續更新 mxnet的教程,主要是看 官方接口API,model.fit()等。 gulon基本上和pytorch很接近

#########################################

mxnet symbol 語義分割標籤製作:

製作lst文件,格式:index label_img_name image_name

自定義數據讀取類,繼承自mxnet.io.DataIter

可參考代碼鏈接:https://github.com/gengyanlei/MXNet-Deep-Learning-in-Action/blob/master/chapter10-segmentation/data/voc.py

 

 

 

發佈了36 篇原創文章 · 獲贊 17 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章