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'])
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
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
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)
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)
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')
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)