mxnet静的版rec idx lstファイルの作成チュートリアル

2622 ワード

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 + '
') 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 + '
') f.close() return

2.im 2 recを呼び出す.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