def _run(self): frame = TFFramework() if self.args['list']: print 'Supported Exemplars:' for primop in frame.ExemplarRegistry: print ' ',primop return 0 elif self.args['primop'] is None: self.subparser.error('A primop must be specified unless using --list') primop_t = self.args['primop'] uas = UniformArgSampler() primop_args = uas.sample(primop_t, n=self.args['n'], seed=self.args['seed']) Exemplar = frame.ExemplarRegistry.lookup(primop_t) self.features = Features() for p_args in primop_args: exemplar = Exemplar(p_args) synthmodel = frame.SyntheticModel(exemplar) frame.set_model(synthmodel) profile = frame.get_timing(mode='inference', ops='native') graph = frame.get_graph(mode='inference', scope='dynamic', ops='native') id = graph.get_vertex_id_from_tf_name( exemplar.get_op_name() ) self.features.append( p_args, profile[id][0] ) if self.args['output'] is None: self.args['output'] = str(primop_t)+'.features' self.features.write(self.args['output'])
def test_load(self): loaders = [ RunpyLoader, ] identifiers = [ 'test.test_models.empty_model', 'test/test_models/empty_model.py', 'test/../test/test_models/empty_model.py', 'test.test_models.simple_nnet', 'test/test_models/simple_nnet.py', 'test/../test/test_models/simple_nnet.py', ] for loader in loaders: for identifier in identifiers: frame = TFFramework() print 'Loading:', identifier frame.load(loader, identifier) assert frame.model.is_dnnamo_model, 'Model isnt actually a Dnnamo model' assert isinstance( frame.model, DnnamoModel), 'Model isnt actually a Dnnamo model'
def test_weight_datatag_accessors(self): frame = TFFramework() frame.load(RunpyLoader, 'test/test_models/simple_nnet.py') assert frame.get_weights( mode='training') is not None, 'No weights returned.' assert frame.get_weights( mode='inference') is not None, 'No weights returned.'
def test_get_timing(self): frame = TFFramework() frame.load(RunpyLoader, 'test/test_models/simple_nnet.py') assert frame.get_timing( mode='training') is not None, 'No timing returned.' assert frame.get_timing( mode='inference') is not None, 'No timing returned.'
def test_datatag_timing_all_dynamic_primitive(self, model, mode): frame = TFFramework(RunpyLoader, model) t = frame.get_timing(mode, 'primitive') assert len(t) > 0, 'No timing information in profile.'
def test_failed_load(self): with self.assertRaises(ImportError): frame = TFFramework() frame.load(RunpyLoader, 'nonexistent_module')
def test_alexnet(self): TFFramework().load(TFFathomLiteLoader, 'AlexNet')
def test_datatag_graph_all_dynamic_primitive(self, model, mode): frame = TFFramework(RunpyLoader, model) g = frame.get_graph(mode, 'dynamic', 'primitive') assert len(g.ops) > 0, 'No operations in graph.'
def test_residual(self): TFFramework().load(TFFathomLiteLoader, 'Residual')
def test_vgg(self): TFFramework().load(TFFathomLiteLoader, 'VGG')
def test_autoenc(self): TFFramework().load(TFFathomLiteLoader, 'Autoenc')
def test_memnet(self): TFFramework().load(TFFathomLiteLoader, 'MemNet')
def test_deepq(self): TFFramework().load(TFFathomLoader, 'DeepQ')
def test_speech(self): TFFramework().load(TFFathomLoader, 'Speech')
def test_seq2seq(self): TFFramework().load(TFFathomLoader, 'Seq2Seq')