Beispiel #1
0
    def mxnet_emit(original_framework, architecture_name, architecture_path,
                   weight_path, test_input_path):
        from mmdnn.conversion.mxnet.mxnet_emitter import MXNetEmitter
        from collections import namedtuple
        Batch = namedtuple('Batch', ['data'])

        import mxnet

        # IR to code
        converted_file = TestModels.tmpdir + original_framework + '_mxnet_' + architecture_name + "_converted"
        converted_file = converted_file.replace('.', '_')
        output_weights_file = converted_file + "-0000.params"
        emitter = MXNetEmitter(
            (architecture_path, weight_path, output_weights_file))
        emitter.run(converted_file + '.py', None, 'test')
        del emitter
        del MXNetEmitter

        # import converted model
        imported = imp.load_source('MXNetModel', converted_file + '.py')

        model_converted = imported.RefactorModel()
        model_converted = imported.deploy_weight(model_converted,
                                                 output_weights_file)

        original_framework = checkfrozen(original_framework)
        if 'rnn' not in architecture_name:
            func = TestKit.preprocess_func[original_framework][
                architecture_name]
            img = func(test_input_path(architecture_name))
            img = np.transpose(img, (2, 0, 1))
            input_data = np.expand_dims(img, 0)
        else:
            input_data = np.load(test_input_path(architecture_name))

        model_converted.forward(Batch([mxnet.nd.array(input_data)]))
        predict = model_converted.get_outputs()[0].asnumpy()
        converted_predict = np.squeeze(predict)

        del model_converted
        del sys.modules['MXNetModel']
        del mxnet

        os.remove(converted_file + '.py')
        os.remove(output_weights_file)

        return converted_predict
Beispiel #2
0
    def MXNetEmit(original_framework, architecture_name, architecture_path,
                  weight_path, image_path):
        from mmdnn.conversion.mxnet.mxnet_emitter import MXNetEmitter
        from collections import namedtuple
        Batch = namedtuple('Batch', ['data'])

        original_framework = checkfrozen(original_framework)

        import mxnet as mx
        print("Testing {} from {} to MXNet.".format(architecture_name,
                                                    original_framework))

        # IR to code
        converted_file = original_framework + '_mxnet_' + architecture_name + "_converted"
        converted_file = converted_file.replace('.', '_')
        output_weights_file = converted_file + "-0000.params"
        emitter = MXNetEmitter(
            (architecture_path, weight_path, output_weights_file))
        emitter.run(converted_file + '.py', None, 'test')
        del emitter
        del MXNetEmitter

        # import converted model
        imported = __import__(converted_file)
        model_converted = imported.RefactorModel()
        model_converted = imported.deploy_weight(model_converted,
                                                 output_weights_file)

        func = TestKit.preprocess_func[original_framework][architecture_name]
        img = func(image_path)
        img = np.transpose(img, (2, 0, 1))
        input_data = np.expand_dims(img, 0)

        model_converted.forward(Batch([mx.nd.array(input_data)]))
        predict = model_converted.get_outputs()[0].asnumpy()
        converted_predict = np.squeeze(predict)

        del model_converted
        del sys.modules[converted_file]
        del mx

        os.remove(converted_file + '.py')
        os.remove(output_weights_file)

        return converted_predict
    def MXNetEmit(original_framework, architecture_name, architecture_path, weight_path, image_path):
        from mmdnn.conversion.mxnet.mxnet_emitter import MXNetEmitter
        from collections import namedtuple
        Batch = namedtuple('Batch', ['data'])

        original_framework = checkfrozen(original_framework)

        import mxnet as mx
        print("Testing {} from {} to MXNet.".format(architecture_name, original_framework))

        # IR to code
        converted_file = original_framework + '_mxnet_' + architecture_name + "_converted"
        converted_file = converted_file.replace('.', '_')
        output_weights_file = converted_file + "-0000.params"
        emitter = MXNetEmitter((architecture_path, weight_path, output_weights_file))
        emitter.run(converted_file + '.py', None, 'test')
        del emitter
        del MXNetEmitter

        # import converted model
        imported = __import__(converted_file)
        model_converted = imported.RefactorModel()
        model_converted = imported.deploy_weight(model_converted, output_weights_file)

        func = TestKit.preprocess_func[original_framework][architecture_name]
        img = func(image_path)
        img = np.transpose(img, (2, 0, 1))
        input_data = np.expand_dims(img, 0)

        model_converted.forward(Batch([mx.nd.array(input_data)]))
        predict = model_converted.get_outputs()[0].asnumpy()
        converted_predict = np.squeeze(predict)

        del model_converted
        del sys.modules[converted_file]
        del mx

        os.remove(converted_file + '.py')
        os.remove(output_weights_file)

        return converted_predict