示例#1
0
def generate_sample(input_model,
                    weights,
                    quantized_model,
                    scaling_mode,
                    calibration_algo,
                    conv_algo,
                    iterations=10,
                    enable_1st_conv=False,
                    sampling_single=False):
    (blobs, params, top_blobs_map, bottom_blobs_map, conv_top_blob_layer_map,
     conv_bottom_blob_layer_map, winograd_bottoms,
     winograd_convolutions) = sampling.sample(input_model, weights, conv_algo,
                                              iterations, enable_1st_conv,
                                              sampling_single)

    (inputs_max, outputs_max, inputs_min) = sampling.calibrate_activations(
        blobs, conv_top_blob_layer_map, conv_bottom_blob_layer_map,
        winograd_bottoms, calibration_algo, "SINGLE", conv_algo)
    params_max = sampling.calibrate_parameters(params,
                                               winograd_convolutions, "DIRECT",
                                               scaling_mode.upper(), conv_algo)

    generate_sample_impl(input_model, quantized_model, inputs_max, outputs_max,
                         inputs_min, params_max, enable_1st_conv)

    return (top_blobs_map, bottom_blobs_map)
示例#2
0
文件: calibrator.py 项目: intel/caffe
def generate_sample(input_model, weights, quantized_model, scaling_mode, calibration_algo, conv_algo, iterations=10, enable_1st_conv=False):
    (blobs, params, top_blobs_map, bottom_blobs_map, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, winograd_convolutions) = sampling.sample(input_model, weights, conv_algo, iterations, enable_1st_conv)

    (inputs_max, outputs_max, inputs_min) = sampling.calibrate_activations(blobs, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, calibration_algo, "SINGLE", conv_algo)
    params_max = sampling.calibrate_parameters(params, winograd_convolutions, "DIRECT", scaling_mode.upper(), conv_algo)

    generate_sample_impl(input_model, quantized_model, inputs_max, outputs_max, inputs_min, params_max, enable_1st_conv)

    return (top_blobs_map, bottom_blobs_map)
示例#3
0
文件: test_net.py 项目: zhliue/caffe
    pprint.pprint(cfg)

    while not os.path.exists(args.caffemodel) and args.wait:
        print('Waiting for {} to exist...'.format(args.caffemodel))
        time.sleep(10)

    #caffe.set_mode_gpu()
    #caffe.set_device(args.gpu_id)
    net = caffe.Net(args.prototxt, args.caffemodel, caffe.TEST)
    net.name = os.path.splitext(os.path.basename(args.caffemodel))[0]

    imdb = get_imdb(args.imdb_name)
    imdb.competition_mode(args.comp_mode)
    if not cfg.TEST.HAS_RPN:
        imdb.set_proposal_method(cfg.TEST.PROPOSAL_METHOD)

    if args.quantized_prototxt == None:
	test_net(net, imdb, max_per_image=args.max_per_image, vis=args.vis)
    else:
        (blobs, params, top_blobs_map, bottom_blobs_map, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, winograd_convolutions) = sample_net(args.prototxt, net, imdb, args.sample_iters, args.quant_mode, args.enable_1st_conv_layer)

        (inputs_max, outputs_max, inputs_min) = sampling.calibrate_activations(blobs, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, args.calibration_algos, "SINGLE", args.conv_algo)
        params_max = sampling.calibrate_parameters(params, winograd_convolutions, "DIRECT", args.quant_mode.upper(), args.conv_algo)
        calibrator.generate_sample_impl(args.prototxt, args.quantized_prototxt, inputs_max, outputs_max, inputs_min, params_max, args.enable_1st_conv_layer)
        compiled_net_str = caffe.compile_net(args.prototxt, caffe.TEST, "MKLDNN")
        raw_net_basename = os.path.basename(args.prototxt)
        compile_net_path = "./compiled_" + raw_net_basename
        with open(compile_net_path, "w") as f:
            f.write(compiled_net_str)
        calibrator.transform_convolutions(args.quantized_prototxt, compile_net_path, top_blobs_map, bottom_blobs_map, args.unsigned_range, args.concat_use_fp32, args.unify_concat_scales, args.conv_algo, args.enable_1st_conv_layer)
示例#4
0
文件: test_net.py 项目: intel/caffe
    while not os.path.exists(args.caffemodel) and args.wait:
        print('Waiting for {} to exist...'.format(args.caffemodel))
        time.sleep(10)

    #caffe.set_mode_gpu()
    #caffe.set_device(args.gpu_id)
    net = caffe.Net(args.prototxt, args.caffemodel, caffe.TEST)
    net.name = os.path.splitext(os.path.basename(args.caffemodel))[0]

    imdb = get_imdb(args.imdb_name)
    imdb.competition_mode(args.comp_mode)
    if not cfg.TEST.HAS_RPN:
        imdb.set_proposal_method(cfg.TEST.PROPOSAL_METHOD)
        if cfg.TEST.PROPOSAL_METHOD == 'rpn':
            imdb.config['rpn_file'] = args.rpn_file

    if args.quantized_prototxt == None:
	test_net(net, imdb, max_per_image=args.max_per_image, vis=args.vis)
    else:
        (blobs, params, top_blobs_map, bottom_blobs_map, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, winograd_convolutions) = sample_net(args.prototxt, net, imdb, args.sample_iters, args.quant_mode, args.enable_1st_conv_layer)
        
        (inputs_max, outputs_max, inputs_min) = sampling.calibrate_activations(blobs, conv_top_blob_layer_map, conv_bottom_blob_layer_map, winograd_bottoms, args.calibration_algos, "SINGLE", args.conv_algo)
        params_max = sampling.calibrate_parameters(params, winograd_convolutions, "DIRECT", args.quant_mode.upper(), args.conv_algo)
        calibrator.generate_sample_impl(args.prototxt, args.quantized_prototxt, inputs_max, outputs_max, inputs_min, params_max, args.enable_1st_conv_layer)
        compiled_net_str = caffe.compile_net(args.prototxt, caffe.TEST, "MKLDNN")
        raw_net_basename = os.path.basename(args.prototxt)
        compile_net_path = "./compiled_" + raw_net_basename
        with open(compile_net_path, "w") as f:
            f.write(compiled_net_str)
        calibrator.transform_convolutions(args.quantized_prototxt, compile_net_path, top_blobs_map, bottom_blobs_map, args.unsigned_range, args.concat_use_fp32, args.unify_concat_scales, args.conv_algo, args.enable_1st_conv_layer)