示例#1
0
 def __init__(self, backend, networks, backend_opts):
     super(Frontend, self).__init__(networks)
     self.backend_opts = backend_opts
     self.backend = backend
     if backend == 'plaid':
         try:
             self.configuration['plaid'] = importlib.import_module('plaidml').__version__
             importlib.import_module('plaidml.keras').install_backend()
         except ImportError:
             raise core.ExtrasNeeded(['plaidml-keras'])
     elif backend == 'tc':
         try:
             importlib.import_module('tensor_comprehensions')
         except ImportError:
             raise core.ExtrasNeeded(['torch', 'tensor_comprehensions'])
         if backend_opts['tc_cachedir']:
             try:
                 os.makedirs(backend_opts['tc_cachedir'])
             except OSError:
                 pass
     elif backend == 'tvm':
         try:
             importlib.import_module('tvm')
         except ImportError:
             raise core.ExtrasNeeded(['tvm', 'topi'])
示例#2
0
 def __init__(self, backend, fp16, train):
     super(Frontend, self).__init__(Frontend.NETWORK_NAMES)
     self.backend = backend
     if backend == 'plaid':
         try:
             self.configuration['plaid'] = importlib.import_module('plaidml').__version__
             importlib.import_module('plaidml.keras').install_backend()
         except ImportError:
             raise core.ExtrasNeeded(['plaidml-keras'])
     if backend == 'plaid_edsl':
         try:
             self.configuration['plaid'] = importlib.import_module('plaidml').__version__
         except ImportError:
             raise RuntimeError("Failed to import plaidml module")
         try:
             importlib.import_module('plaidml2.bridge.keras')
         except ImportError:
             raise RuntimeError("The PlaidML2 EDSL Keras bridge was requested but not found.")
     elif backend == 'tensorflow':
         try:
             importlib.import_module('keras.backend')
         except ImportError:
             raise core.ExtrasNeeded(['keras', 'tensorflow'])
     if fp16:
         importlib.import_module('keras.backend').set_floatx('float16')
     if train:
         self.configuration['train'] = True
     self.fp16 = fp16
     self.train = train
示例#3
0
 def __init__(self, backend, fp16, train):
     super(Frontend, self).__init__(Frontend.NETWORK_NAMES)
     self.backend = backend
     if backend == 'plaid':
         try:
             self.configuration['plaid'] = importlib.import_module(
                 'plaidml').__version__
             importlib.import_module('plaidml.keras').install_backend()
         except ImportError:
             raise core.ExtrasNeeded(['plaidml-keras'])
     elif backend == 'tensorflow':
         try:
             importlib.import_module('keras.backend')
         except ImportError:
             raise core.ExtrasNeeded(['keras', 'tensorflow'])
     if fp16:
         importlib.import_module('keras.backend').set_floatx('float16')
     if train:
         self.configuration['train'] = True
     self.fp16 = fp16
     self.train = train
示例#4
0
def cli(ctx, backend, fp16, train, networks):
    """Benchmarks Keras neural networks."""
    runner = ctx.ensure_object(core.Runner)
    frontend = Frontend(backend, fp16, train)
    if backend == 'plaid':
        try:
            runner.reporter.configuration['plaid'] = importlib.import_module(
                'plaidml').__version__
            importlib.import_module('plaidml.keras').install_backend()
        except ImportError:
            raise core.ExtrasNeeded(['plaidml-keras'])
    elif backend == 'tensorflow':
        try:
            importlib.import_module('keras.backend')
        except ImportError:
            raise core.ExtrasNeeded(['keras', 'tensorflow'])

    if fp16:
        importlib.import_module('keras.backend').set_floatx('float16')
    if train:
        runner.reporter.configuration['train'] = True
    return runner.run(frontend, networks)
示例#5
0
def cli(ctx, backend, cpu, use_cached_data, networks):
    """Benchmarks ONNX models."""
    runner = ctx.ensure_object(core.Runner)
    try:
        importlib.import_module(backend.module_name)
    except ImportError:
        six.raise_from(core.ExtrasNeeded(backend.requirements), None)
    if backend.is_plaidml:
        runner.reporter.configuration['plaid'] = plaidml.__version__

    onnx = importlib.import_module('onnx')
    importlib.import_module('onnx.numpy_helper')

    frontend = Frontend(cpu, use_cached_data, backend, onnx)
    return runner.run(frontend, networks)
示例#6
0
    def __init__(self, backend, cpu, use_cached_data):
        super(Frontend, self).__init__(Frontend.NETWORK_NAMES)
        self.cpu = cpu
        self.use_cached_data = use_cached_data
        self.backend_info = backend

        try:
            importlib.import_module(backend.module_name)
        except ImportError:
            six.raise_from(core.ExtrasNeeded(backend.requirements), None)
        if backend.is_plaidml:
            self.configuration['plaid'] = plaidml.__version__

        self.onnx = importlib.import_module('onnx')
        importlib.import_module('onnx.numpy_helper')
示例#7
0
 def setup(self):
     try:
         self.backend = importlib.import_module(self.frontend.backend_info.module_name)
     except ImportError:
         raise core.ExtrasNeeded(self.frontend.backend_info.requirements)
     try:
         data_path = download_onnx_data(self.params.network_name, 'test_data_0.npz',
                                        self.frontend.use_cached_data)
         self.x = np.load(data_path)['inputs'][0]
     except DataNotFoundError:
         # See if we can access it as a proto.
         data_path = download_onnx_data(self.params.network_name,
                                        os.path.join('test_data_set_0', 'input_0.pb'))
         tensor = self.onnx.TensorProto()
         with open(data_path, 'rb') as f:
             tensor.ParseFromString(f.read())
         self.x = self.onnx.numpy_helper.to_array(tensor)
     model_path = download_onnx_data(self.params.network_name, 'model.onnx')
     self.model = self.onnx.load(model_path)