def main(): Data_root = "ILSVRC2015/Data/VID/train/" source_root = "ILSVRC2015/ImageSets/Videos/train.txt" batch_size = 100 GPU = 1 output_path = 'output/colornet/frame_all' imageiter = imageIter.ImageIter(batch_size=batch_size, source_root=source_root, Data_root=Data_root) sym_instance = color_flow.color_flow() sym = sym_instance.get_train_symbol() #feat_sym = sym.get_internals() #feat_sym = sym.get_internals('prior_boost_nongray_output') summary(sym, shape=(imageiter.k, 3, 176, 176)) # load param color_pretrain = './model/pretrained_model/colornet' #color_pretrain = 'output/colornet/colornet100' epoch = 0 arg_params, aux_params = load_model.load_param(color_pretrain, epoch) #arg_params=None #aux_params=None sym_instance.init_weight(arg_params, aux_params) # metric color_metric = metric.ColorMetric() eval_metrics = mx.metric.CompositeEvalMetric() for child_metric in [color_metric]: eval_metrics.add(child_metric) batch_end_callback = callback.Speedometer(batch_size=1, frequent=10) checkpoint = mx.callback.do_checkpoint('output/colornet/colornet_all', 1) optimizer = mx.optimizer.Adam(learning_rate=3.16e-5, beta1=0.9, beta2=0.99, rescale_grad=1.0 / imageiter.k) model = mx.module.Module(context=mx.gpu(0), symbol=sym, label_names=None) print 'training the data' model.fit(imageiter, begin_epoch=0, num_epoch=3, \ batch_end_callback = batch_end_callback, \ epoch_end_callback = checkpoint, \ arg_params=arg_params, aux_params=aux_params, \ optimizer=optimizer, \ kvstore='local', \ eval_metric=eval_metrics)#, \
img_root = 'ILSVRC2015/Data/VID/val/ILSVRC2015_val_00' + sample + '/' for idx in range(len(List)): List[idx] = List[idx].strip() sym_instance = CFNet.CFNet() sym = sym_instance.get_flow_test_symbol() #summary(sym, (2,1,224,224)) prefix = './output/colornet/CFNwarp100' #prefix = 'model/pretrained_model/colornet' #epoch = 2 epoch = 0 #param_file = '%s-0060.params' % prefix #symbol_file = '%s' % prefix print 'loading the params' arg_params, aux_params = load_model.load_param(prefix, epoch, process=True) sym_instance.init_weight(arg_params, aux_params) print 'init the module' model = mx.module.Module(context=mx.gpu(GPU), symbol=sym, data_names=['data', 'data_cur'], label_names=None) model.bind(data_shapes=[('data', (1, 1, 224, 224)), ('data_cur', (1, 1, 224, 224))], label_shapes=None, for_training=False) model.init_params(arg_params=arg_params, aux_params=aux_params) print 'test the data' H_in = 224 W_in = 224
def main(): Data_root = "ILSVRC2015/Data/VID/train/" source_root = "ILSVRC2015/ImageSets/Videos/train.txt" batch_size = 90 output_path = 'output/colornet/CFN_all' GPU = 0 imageiter = imageIter.ImageIter(batch_size=batch_size, source_root=source_root, Data_root=Data_root) sym_instance = CFNet.CFNet() sym = sym_instance.get_train_symbol() #mx.visualization.plot_network(sym).view() summary(sym, shape=(batch_size, 3, 176, 176)) # load param #color_pretrain = './model/pretrained_model/colornet' color_pretrain = 'output/colornet/CFNwarp100' epoch = 0 arg_params, aux_params = load_model.load_param(color_pretrain, epoch) fixed_param_names = [ 'bw_conv1_1_weight', 'bw_conv1_1_bias', 'conv1_2_weight', 'conv1_2_bias', 'conv2_1_weight', 'conv2_2_bias', 'conv2_2_weight', 'conv2_2_bias', 'conv3_1_weight', 'conv3_1_bias', 'conv3_2_weight', 'conv3_2_bias', 'conv3_3_weight', 'conv3_3_bias', 'conv4_1_weight', 'conv4_1_bias', 'conv4_2_weight', 'conv4_2_bias', 'conv4_3_weight', 'conv4_3_bias', 'conv5_1_weight', 'conv5_1_bias', 'conv5_2_weight', 'conv5_2_bias', 'conv5_3_weight', 'conv5_3_bias', 'conv6_1_weight', 'conv6_1_bias', 'conv6_2_weight', 'conv6_2_bias', 'conv6_3_weight', 'conv6_3_bias', 'conv7_1_weight', 'conv7_1_bias', 'conv7_2_weight', 'conv7_2_bias', 'conv7_3_weight', 'conv7_3_bias', 'conv8_1_weight', 'conv8_2_weight', 'conv8_2_bias', 'conv8_3_weight', 'conv8_3_bias', 'conv8_313_weight', 'data_ab_ss_weight', 'data_ab_ss_bias', 'conv1_2norm_beta', 'conv1_2norm_gamma', 'conv2_2norm_beta', 'conv2_2norm_gamma', 'conv3_3norm_beta', 'conv3_3norm_gamma', 'conv4_3norm_beta', 'conv4_3norm_gamma', 'conv5_3norm_beta', 'conv5_3norm_gamma', 'conv6_3norm_beta', 'conv6_3norm_gamma', 'conv7_3norm_beta', 'conv7_3norm_gamma' ] #fixed_param_names = ['data_ab_ss', 'data_ab_ss_cur'] sym_instance.init_weight(arg_params, aux_params) # metric color_metric = metric.ColorMetric() flow_metric = metric.FlowMetric() eval_metrics = mx.metric.CompositeEvalMetric() for child_metric in [color_metric, flow_metric]: eval_metrics.add(child_metric) batch_end_callback = callback.Speedometer(batch_size=1, frequent=1) optimizer = mx.optimizer.Adam(learning_rate=3.16e-5, beta1=0.9, beta2=0.99, rescale_grad=1.0 / batch_size) data_names = ['data'] model = mx.module.Module(context=mx.gpu(GPU), symbol=sym, data_names=data_names, label_names=None) checkpoint = mx.callback.module_checkpoint(model, output_path, period=1, save_optimizer_states=False) print 'training the data' model.fit(imageiter, begin_epoch=0, num_epoch=10, \ batch_end_callback = batch_end_callback, \ epoch_end_callback = checkpoint, \ arg_params=arg_params, aux_params=aux_params, \ optimizer=optimizer, \ kvstore='local', \ eval_metric=eval_metrics)
#img_root = 'ILSVRC2015/Data/VID/train/ILSVRC2015_VID_train_0000/ILSVRC2015_train_00139005/' img_root = 'ILSVRC2015/Data/VID/val/ILSVRC2015_val_00'+sample+'/' for i in range(len(List)): List[i] = List[i].strip() sym_instance = color_flow.color_flow() sym = sym_instance.get_test_symbol() summary(sym, (1,1,224,224)) #prefix = './output/colornet/CFN100' prefix = 'model/pretrained_model/colornet' #epoch = 2 epoch = 0 #param_file = '%s-0060.params' % prefix #symbol_file = '%s' % prefix print 'loading the params' arg_params, aux_params = load_model.load_param(prefix, epoch) sym_instance.init_weight(arg_params, aux_params) #sym, arg_params, aux_params = mx.model.load_checkpoint(symbol_file, param_file) print 'init the module' model = mx.module.Module(context=mx.gpu(GPU), symbol=sym, label_names=None) model.bind(data_shapes=[('data',(1,1,224,224))], label_shapes=None,for_training=False) model.init_params(arg_params=arg_params, aux_params=aux_params, allow_missing=False, force_init=True) #model.set_params(arg_params=arg_params, aux_params=aux_params, allow_missing=False, force_init=True) print 'test the data' H_in = 224 W_in = 224 H_out = 56 W_out = 56 #for i in range(2): for i in range(len(List)): print img_root + List[i].strip()