コード例 #1
0
 def sketch(
     self,
     images,
 ):
     # imgj = images[rand_img_id]
     import pdb
     pdb.set_trace()
     (sentence, ) = describe(images, rand_img_id)
     permuted_images = random.sample(images, len(images))
     (score, ) = which_image(permuted_images, sentence)
     asl.observe(score, "score")
     return (score, )
コード例 #2
0
ファイル: mnistset.py プロジェクト: zenna/asl
 def trace(items, r, runstate, add, card, empty):
   """Example set trace"""
   asl.log_append("empty", empty)
   aset = empty
   (set_card, ) = card(aset)
   asl.observe(bridge(set_card), "card1", runstate)
   hand = [next(items) for i in range(5)]
   subhand = [r.choice(hand) for i in range(5)]
   for i, item in enumerate(subhand):
     (aset, ) = add(aset, item)
     asl.log_append("{}/internal".format(runstate['mode']), aset)
     (set_card, ) = card(aset)
     asl.observe(bridge(set_card), "card.{}".format(i), runstate)
   return set_card
コード例 #3
0
    def trace4(items, r, runstate, push, pop, empty):
        """Pushes n items, to create n stacks, pops from random one"""
        asl.log_append("empty", empty)
        stack = empty
        for nr in range(nrounds):
            stacks = []
            for i in range(nitems):
                (stack, ) = push(stack, next(items))
                asl.log_append("{}/internal".format(runstate['mode']), stack)
                stacks.append(stack)

            (stack, pop_item) = pop(stack)
            asl.observe(pop_item, "pop.nr{}.i{}".format(nr, i), runstate)
            asl.log_append("{}/internal".format(runstate['mode']), stack)
コード例 #4
0
ファイル: stacktraces.py プロジェクト: zenna/dddt
  def trace4(items, r, runstate, push, pop, empty):
    """Pushes n items, to create n stacks, pops from random one"""
    asl.log_append("empty", empty)
    stack = empty
    for nr in range(nrounds):
      stacks = []
      for i in range(nitems):
        (stack, ) = push(stack, next(items))
        asl.log_append("{}/internal".format(runstate['mode']), stack)
        stacks.append(stack)

      (stack, pop_item) = pop(stack)
      asl.observe(pop_item, "pop.nr{}.i{}".format(nr, i), runstate)
      asl.log_append("{}/internal".format(runstate['mode']), stack)
コード例 #5
0
ファイル: stacktraces.py プロジェクト: zenna/dddt
 def trace2(items, r, runstate, push, pop, empty):
   """Push Pop Push Push Pop Pop Push Push Push Pop Pop Pop"""
   asl.log_append("empty", empty)
   stack = empty
   for nr in range(nrounds):
     for i in range(nitems):
       (stack,) = push(stack, next(items))
       asl.log_append("{}/internal".format(runstate['mode']), stack)
       pop_stack = stack
       for j in range(i, -1, -1):
         (pop_stack, pop_item) = pop(pop_stack)
         asl.log_append("{}/internal".format(runstate['mode']), pop_stack)
         asl.observe(pop_item, "pop.nr{}.i{}.j{}".format(nr, i, j), runstate)
   return pop_item
コード例 #6
0
ファイル: basicstacktrain.py プロジェクト: zenna/dddt
  def trace1(items, r, runstate, push, pop, empty):
    """Push push push, pop pop pop"""
    asl.log_append("empty", empty)
    stack = empty
    for nr in range(nrounds):
      for i in range(nitems):
        (stack,) = push(stack, next(items))
        asl.log_append("{}/internal".format(runstate['mode']), stack)

      for j in range(nitems):
        (stack, pop_item) = pop(stack)
        asl.observe(pop_item, "pop.{}.{}".format(nr, j), runstate)
        asl.log_append("{}/internal".format(runstate['mode']), stack)
      
    return pop_item
コード例 #7
0
    def trace1(items, r, runstate, push, pop, empty):
        """Push push push, pop pop pop"""
        asl.log_append("empty", empty)
        stack = empty
        for nr in range(nrounds):
            for i in range(nitems):
                (stack, ) = push(stack, next(items))
                asl.log_append("{}/internal".format(runstate['mode']), stack)

            for j in range(nitems):
                (stack, pop_item) = pop(stack)
                asl.observe(pop_item, "pop.{}.{}".format(nr, j), runstate)
                asl.log_append("{}/internal".format(runstate['mode']), stack)

        return pop_item
コード例 #8
0
 def trace2(items, r, runstate, push, pop, empty):
     """Push Pop Push Push Pop Pop Push Push Push Pop Pop Pop"""
     asl.log_append("empty", empty)
     stack = empty
     for nr in range(nrounds):
         for i in range(nitems):
             (stack, ) = push(stack, next(items))
             asl.log_append("{}/internal".format(runstate['mode']), stack)
             pop_stack = stack
             for j in range(i, -1, -1):
                 (pop_stack, pop_item) = pop(pop_stack)
                 asl.log_append("{}/internal".format(runstate['mode']),
                                pop_stack)
                 asl.observe(pop_item, "pop.nr{}.i{}.j{}".format(nr, i, j),
                             runstate)
     return pop_item
コード例 #9
0
    def trace6(items, r, runstate, push, pop, empty):
        """Pushes n items, to create n stacks, pops randnum times, then observe once"""
        asl.log_append("empty", empty)
        stack = empty
        for nr in range(nrounds):
            stacks = []
            for i in range(nitems):
                (stack, ) = push(stack, next(items))
                asl.log_append("{}/internal".format(runstate['mode']), stack)
                stacks.append(stack)

            npops = r.randdint(1, nitems)
            for j in range(npops):
                (stack, pop_item) = pop(stack)
                asl.log_append("{}/internal".format(runstate['mode']), stack)

            asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
コード例 #10
0
ファイル: stacktraces.py プロジェクト: zenna/dddt
  def trace6(items, r, runstate, push, pop, empty):
    """Pushes n items, to create n stacks, pops randnum times, then observe once"""
    asl.log_append("empty", empty)
    stack = empty
    for nr in range(nrounds):
      stacks = []
      for i in range(nitems):
        (stack, ) = push(stack, next(items))
        asl.log_append("{}/internal".format(runstate['mode']), stack)
        stacks.append(stack)

      npops = r.randint(1, nitems)
      for j in range(npops):
        (stack, pop_item) = pop(stack)
        asl.log_append("{}/internal".format(runstate['mode']), stack)
      
      asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
コード例 #11
0
ファイル: mniststack.py プロジェクト: zenna/dddt
  def trace(items, r, runstate, push, pop, empty):
    """Example stack trace"""
    # import pdb; pdb.set_trace()
    asl.log_append("empty", empty)
    stack = empty
    for nr in range(nrounds):
      for i in range(nitems):
        (stack,) = push(stack, next(items))
        # print("BLIP!")
        asl.log_append("{}/internal".format(runstate['mode']), stack)

      for j in range(nitems):
        (stack, pop_item) = pop(stack)
        asl.observe(pop_item, "pop.{}.{}".format(nr, j), runstate)
        # print("BLIP!")
        asl.log_append("{}/internal".format(runstate['mode']), stack)
      
    return pop_item
コード例 #12
0
ファイル: mniststack.py プロジェクト: zenna/asl
    def trace(items, r, runstate, push, pop, empty):
        """Example stack trace"""
        # import pdb; pdb.set_trace()
        asl.log_append("empty", empty)
        stack = empty
        for nr in range(nrounds):
            for i in range(nitems):
                (stack, ) = push(stack, next(items))
                # print("BLIP!")
                asl.log_append("{}/internal".format(runstate['mode']), stack)

            for j in range(nitems):
                (stack, pop_item) = pop(stack)
                asl.observe(pop_item, "pop.{}.{}".format(nr, j), runstate)
                # print("BLIP!")
                asl.log_append("{}/internal".format(runstate['mode']), stack)

        return pop_item
コード例 #13
0
ファイル: basicstacktrain.py プロジェクト: zenna/asl
  def trace(items, r, runstate, push, pop, empty):
    """Example stack trace"""
    asl.log_append("empty", empty)
    stack = empty

    (stack,) = push(stack, next(items))
    asl.log_append("{}/internal".format(runstate['mode']), stack)

    (stack,) = push(stack, next(items))
    asl.log_append("{}/internal".format(runstate['mode']), stack)

    (pop_stack, pop_item) = pop(stack)
    asl.observe(pop_item, "pop1", runstate)
    asl.log_append("{}/internal".format(runstate['mode']), pop_stack)

    (pop_stack, pop_item) = pop(pop_stack)
    asl.observe(pop_item, "pop2", runstate)
    asl.log_append("{}/internal".format(runstate['mode']), pop_stack)
    return pop_item
コード例 #14
0
ファイル: clevrgen.py プロジェクト: zenna/dddt
    def sketch(self, noise):
      """Generate clevr image"""
      # Add object 1
      #FIXME this is a hack
      noisetensor = asl.cuda(Variable(torch.rand((1,) + SMALL_IMG_SIZE)), opt.nocuda)
      nnoise = Noise(expand_to_batch(noisetensor, opt.batch_size))
      (object1, ) = nclevrgen.gen_object(nnoise)
      scene = nclevrgen.empty_scene
      (scene, ) = nclevrgen.add_object(scene, object1)

      # Add object 2
      (object2, ) = nclevrgen.gen_object(nnoise)
      (scene, ) = nclevrgen.add_object(scene, object2)

      # Add object 3
      (object3, ) = nclevrgen.gen_object(nnoise)
      (scene, ) = nclevrgen.add_object(scene, object3)

      (img, ) = nclevrgen.render(scene)
      asl.observe(img, 'rendered_img')
      return (img, )
コード例 #15
0
    def trace5(items, r, runstate, push, pop, empty):
        """Make n random choices over whether to push or pop"""
        asl.log_append("empty", empty)
        stack = empty
        stack_size = 0
        choicesperround = nitems
        for nr in range(nrounds * choicesperround):
            if stack_size == 0:
                (stack, ) = push(stack, next(items))
                stack_size = stack_size + 1
            elif stack_size == nitems:
                (stack, pop_item) = pop(stack)
                asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
                stack_size = stack_size - 1
            else:
                dopush = r.choice([True, False])
                if dopush:
                    (stack, ) = push(stack, next(items))
                    stack_size = stack_size + 1
                else:
                    (stack, pop_item) = pop(stack)
                    asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
                    stack_size = stack_size - 1

        # Final pop to make sure we get some data
        if stack_size > 0:
            (stack, pop_item) = pop(stack)
            asl.observe(pop_item, "pop.final", runstate)
            asl.log_append("{}/internal".format(runstate['mode']), stack)
コード例 #16
0
ファイル: stacktraces.py プロジェクト: zenna/dddt
  def trace5(items, r, runstate, push, pop, empty):
    """Make n random choices over whether to push or pop"""
    asl.log_append("empty", empty)
    stack = empty
    stack_size = 0
    choicesperround = nitems
    for nr in range(nrounds * choicesperround):
      if stack_size == 0:
        (stack, ) = push(stack, next(items))
        stack_size = stack_size + 1
      elif stack_size == nitems:
        (stack, pop_item) = pop(stack)
        asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
        stack_size = stack_size - 1
      else:
        dopush = r.choice([True, False])
        if dopush:
          (stack, ) = push(stack, next(items))
          stack_size = stack_size + 1
        else:
          (stack, pop_item) = pop(stack)
          asl.observe(pop_item, "pop.nr{}".format(nr), runstate)
          stack_size = stack_size - 1
      asl.log_append("{}/internal".format(runstate['mode']), stack)


    # Final pop to make sure we get some data
    if stack_size > 0:
      (stack, pop_item) = pop(stack)
      asl.observe(pop_item, "pop.final", runstate)    
      asl.log_append("{}/internal".format(runstate['mode']), stack)
コード例 #17
0
        def sketch(self, noise):
            """Generate clevr image"""
            # Add object 1
            #FIXME this is a hack
            noisetensor = asl.cuda(
                Variable(torch.rand((1, ) + SMALL_IMG_SIZE)), opt.nocuda)
            nnoise = Noise(expand_to_batch(noisetensor, opt.batch_size))
            (object1, ) = nclevrgen.gen_object(nnoise)
            scene = nclevrgen.empty_scene
            (scene, ) = nclevrgen.add_object(scene, object1)

            # Add object 2
            (object2, ) = nclevrgen.gen_object(nnoise)
            (scene, ) = nclevrgen.add_object(scene, object2)

            # Add object 3
            (object3, ) = nclevrgen.gen_object(nnoise)
            (scene, ) = nclevrgen.add_object(scene, object3)

            (img, ) = nclevrgen.render(scene)
            asl.observe(img, 'rendered_img')
            return (img, )
コード例 #18
0
ファイル: mnistset.py プロジェクト: zenna/asl
 def trace(items, r, runstate, add, card, empty):
   """Example set trace"""
   # import pdb; pdb.set_trace()
   asl.log_append("empty", empty)
   aset = empty
   (set_card, ) = card(aset)
   asl.observe(bridge(set_card), "card1", runstate)
   i1 = next(items)
   i2 = next(items)
   (aset, ) = add(aset, i1)
   asl.log_append("{}/internal".format(runstate['mode']), aset)
   (aset, ) = add(aset, i1)
   asl.observe(bridge(set_card), "card2", runstate)      
   asl.log_append("{}/internal".format(runstate['mode']), aset)
   (aset, ) = add(aset, i2)
   asl.log_append("{}/internal".format(runstate['mode']), aset)
   (set_card, ) = card(aset)
   asl.observe(bridge(set_card), "card3", runstate)      
   return set_card
コード例 #19
0
 def ref_img_gen(img_iter):
     img = next(img_iter)
     asl.observe(img, 'rendered_img')
     return (img, )
コード例 #20
0
ファイル: clevrgen.py プロジェクト: zenna/dddt
 def ref_img_gen(img_iter):
   img = next(img_iter)
   asl.observe(img, 'rendered_img')
   return (img, )
コード例 #21
0
 def target_score_gen(images, rand_img_id):
     asl.observe(rand_img_id, "score")
     return (rand_img_id, )