예제 #1
0
파일: sweep.py 프로젝트: rdadolf/dnnamo
  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'])
예제 #2
0
 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'
예제 #3
0
 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.'
예제 #4
0
 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.'
예제 #5
0
 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.'
예제 #6
0
 def test_failed_load(self):
     with self.assertRaises(ImportError):
         frame = TFFramework()
         frame.load(RunpyLoader, 'nonexistent_module')
예제 #7
0
 def test_alexnet(self):
     TFFramework().load(TFFathomLiteLoader, 'AlexNet')
예제 #8
0
 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.'
예제 #9
0
 def test_residual(self):
     TFFramework().load(TFFathomLiteLoader, 'Residual')
예제 #10
0
 def test_vgg(self):
     TFFramework().load(TFFathomLiteLoader, 'VGG')
예제 #11
0
 def test_autoenc(self):
     TFFramework().load(TFFathomLiteLoader, 'Autoenc')
예제 #12
0
 def test_memnet(self):
     TFFramework().load(TFFathomLiteLoader, 'MemNet')
예제 #13
0
 def test_deepq(self):
     TFFramework().load(TFFathomLoader, 'DeepQ')
예제 #14
0
 def test_speech(self):
     TFFramework().load(TFFathomLoader, 'Speech')
예제 #15
0
 def test_seq2seq(self):
     TFFramework().load(TFFathomLoader, 'Seq2Seq')