ctask =  SON([('transform_average', SON([('transform_name','translation'),('max',True)])),
              ('N',NUM_SPLITS), 
              ('ntrain',NTRAIN),
              ('ntest',NTEST),
              ('overlap',OVERLAP),
              ('universe',SON([('image.bg_id',SON([('$ne','gray.tdl')]))])),
              ('query',[SON([('image.model_id',SON([('$in',CAT[cat1])]))]),
                        SON([('image.model_id',SON([('$in',CAT[cat2])]))])])
         ]) 
 mtask =  SON([('transform_average', SON([('transform_name','translation'),('max',True)])),
              ('N',NUM_SPLITS), 
              ('ntrain',NTRAIN),
              ('ntest',NTEST),
              ('overlap',OVERLAP),
              ('universe',SON([('image.bg_id',SON([('$ne','gray.tdl')]))])),
              ('query',[SON([('image.model_id',SON([('$in',k)]))]) for k in mixup(CAT,[[cat1],[cat2]])])
         ]) 
 
 t1 = copy.deepcopy(ctask)
 t1['universe'].update(trans_q)
 t1['task_label'] = cat1 + '/' + cat2 + ' trans'
 task_set.append(t1)
 
 t2 = copy.deepcopy(ctask)
 t2['universe'].update(inrot_q)
 t2['task_label'] = cat1 + '/' + cat2 + ' inrot'
 task_set.append(t2)
 
 t3 = copy.deepcopy(mtask)
 t3['universe'].update(trans_q)
 t3['task_label'] = cat1 + '/' + cat2 + ' trans mixed'
      ('N',10), 
      ('ntrain',300),
      ('ntest',150),
      ('overlap',.75),
      ('universe',SON([('image.bg_id','gray.tdl')])),
      ('query',[SON([('image.model_id',SON([('$in',uset(CAT,k))]))]) for k in tenway_cats])
      ])      

tenway_mixup_task = SON([
      ('transform_average', SON([('transform_name','translation'),('max',True)])),
      ('N',10), 
      ('ntrain',300),
      ('ntest',150),
      ('overlap',.75),
      ('universe',SON([('image.bg_id','gray.tdl')])),
      ('query',[SON([('image.model_id',SON([('$in',k)]))]) for k in mixup(CAT,tenway_cats)])
      ])      

      
car_plane_cats = [['cars'],['planes']]

car_vs_plane_task = SON([
      ('transform_average', SON([('transform_name','translation'),('max',True)])),
      ('N',10), 
      ('ntrain',60),
      ('ntest',30),
      ('overlap',.75),
      ('universe',SON([('image.bg_id','gray.tdl')])),
      ('query',[SON([('image.model_id',SON([('$in',uset(CAT,k))]))]) for k in car_plane_cats])
      ])  
      
                    [
                        SON([("image.model_id", SON([("$in", CAT[cat1])]))]),
                        SON([("image.model_id", SON([("$in", CAT[cat2])]))]),
                    ],
                ),
            ]
        )
        mtask = SON(
            [
                ("transform_average", SON([("transform_name", "translation"), ("max", True)])),
                ("N", NUM_SPLITS),
                ("ntrain", NTRAIN),
                ("ntest", NTEST),
                ("overlap", OVERLAP),
                ("universe", SON([("image.bg_id", "gray.tdl")])),
                ("query", [SON([("image.model_id", SON([("$in", k)]))]) for k in mixup(CAT, [[cat1], [cat2]])]),
            ]
        )

        t1 = copy.deepcopy(ctask)
        t1["universe"].update(trans_q)
        t1["task_label"] = cat1 + "/" + cat2 + " trans"
        task_set.append(t1)

        t2 = copy.deepcopy(ctask)
        t2["universe"].update(inrot_q)
        t2["task_label"] = cat1 + "/" + cat2 + " inrot"
        task_set.append(t2)

        t3 = copy.deepcopy(mtask)
        t3["universe"].update(trans_q)