def testInfer5(): lib = mkDefaultLib() # region #+ Add recogFive to library inType = mkRealTensorSort([1, 1, 28, 28]) outType = mkBoolTensorSort([1, 1]) recogDigitType = mkFuncSort(inType, outType) lib.addItem(PPLibItem('recogFive', recogDigitType, None)) # endregion inType = mkRealTensorSort([1, 1, 28, 28]) outType = mkRealTensorSort([1, 1]) sort = mkFuncSort(inType, outType) prog = PPVar(name='lib.recogFive') sortInferred = inferType(prog, lib) print(repr_py_sort(sort)) print(sort) print(repr_py_sort(sortInferred)) print(sortInferred) assert sort == sortInferred
def testInfer2(): lib = mkDefaultLib() sort = mkFuncSort(mkRealTensorSort([1, 1]), mkBoolTensorSort([1, 1]), mkRealTensorSort([1, 1])) prog = PPTermUnk( name='nn_fun_x_906', sort=PPFuncSort(args=[ PPTensorSort(param_sort=PPReal(), shape=[PPDimConst(value=1), PPDimConst(value=1)]), PPTensorSort(param_sort=PPBool(), shape=[PPDimConst(value=1), PPDimConst(value=1)]) ], rtpe=PPTensorSort( param_sort=PPReal(), shape=[PPDimConst(value=1), PPDimConst(value=1)]))) sortInferred = inferType(prog, lib) print(repr_py_sort(sort)) print(sort) print(repr_py_sort(sortInferred)) print(sortInferred) assert sort == sortInferred
def testInfer3(): lib = mkDefaultLib() sort = mkRealTensorSort([1, 1]) prog = PPFuncApp(fn=PPVar(name='lib.zeros'), args=[PPIntConst(value=1)]) sortInferred = inferType(prog, lib) print(repr_py_sort(sort)) print(sort) print(repr_py_sort(sortInferred)) print(sortInferred) assert sort == sortInferred
def testInfer8(): lib = mkDefaultLib() addRecogFive(lib) prog = PPVar(name='lib.map_l') sortInferred = inferType(prog, lib) print(repr_py_sort(sortInferred))
def testInfer1(): lib = mkDefaultLib() # region #+ Add recogFive to library inType = mkRealTensorSort([1, 1, 28, 28]) outType = mkBoolTensorSort([1, 1]) recogDigitType = mkFuncSort(inType, outType) lib.addItem(PPLibItem('recogFive', recogDigitType, None)) # endregion inType = mkListSort(mkRealTensorSort([1, 1, 28, 28])) outType = mkRealTensorSort([1, 1]) sort = mkFuncSort(inType, outType) prog = \ PPFuncApp(fn=PPVar(name='lib.compose'), args=[PPFuncApp(fn=PPVar(name='lib.fold_l'), args=[PPTermUnk(name='nn_fun_x_906', sort=PPFuncSort( args=[PPTensorSort(param_sort=PPReal(), shape=[PPDimConst(value=1), PPDimConst(value=1)]), PPTensorSort(param_sort=PPBool(), shape=[PPDimConst(value=1), PPDimConst(value=1)])], rtpe=PPTensorSort(param_sort=PPReal(), shape=[PPDimConst(value=1), PPDimConst(value=1)]))), PPFuncApp(fn=PPVar(name='lib.zeros'), args=[PPIntConst(value=1)])]), PPFuncApp(fn=PPVar(name='lib.map_l'), args=[PPVar(name='lib.recogFive')])]) sortInferred = inferType(prog, lib) print(repr_py_sort(sort)) print(sort) print(repr_py_sort(sortInferred)) print(sortInferred) assert sort == sortInferred
def testInfer6(): lib = mkDefaultLib() inType = mkListSort(mkBoolTensorSort([1, 1])) outType = mkRealTensorSort([1, 1]) sort = mkFuncSort(inType, outType) prog = PPFuncApp(fn=PPVar(name='lib.fold_l'), args=[ PPTermUnk(name='nn_fun_x_906', sort=PPFuncSort(args=[ PPTensorSort(param_sort=PPReal(), shape=[ PPDimConst(value=1), PPDimConst(value=1) ]), PPTensorSort(param_sort=PPBool(), shape=[ PPDimConst(value=1), PPDimConst(value=1) ]) ], rtpe=PPTensorSort( param_sort=PPReal(), shape=[ PPDimConst(value=1), PPDimConst(value=1) ]))), PPFuncApp(fn=PPVar(name='lib.zeros'), args=[PPIntConst(value=1)]) ]) sortInferred = inferType(prog, lib) print(repr_py_sort(sort)) print(sort) print(repr_py_sort(sortInferred)) print(sortInferred) assert sort == sortInferred
def _impl(self, sort): print('begin genProg') # print(sort) print(repr_py_sort(sort)) program = method(self, sort) if program is not None: # print(program) print(repr_py(program)) else: print('None') print('end genProg') return program
def testInfer12_1(): lib = None # lib.compose(lib.compose(lib.compose(Unk, lib.compose(Unk, lib.compose(lib.map_l, lib.map_l))), Unk), # lib.map_l(lib.recogFive)) prog1 = PPFuncApp( fn=PPVar(name='lib.compose'), args=[ PPFuncApp( fn=PPVar(name='lib.compose'), args=[ PPFuncApp( fn=PPVar(name='lib.compose'), args=[ PPTermUnk(name='Unk', sort=PPFuncSort( args=[PPSortVar(name='C')], rtpe=PPTensorSort( param_sort=PPReal(), shape=[ PPDimConst(value=1), PPDimConst(value=1) ]))), PPFuncApp( fn=PPVar(name='lib.compose'), args=[ PPTermUnk( name='Unk', sort=PPFuncSort(args=[ PPFuncSort( args=[ PPListSort( param_sort=PPListSort( param_sort= PPSortVar( name='A_1_2'))) ], rtpe=PPListSort( param_sort=PPListSort( param_sort=PPSortVar( name='B_1')))) ], rtpe=PPSortVar( name='C'))), PPFuncApp(fn=PPVar(name='lib.compose'), args=[ PPVar(name='lib.map_l'), PPVar(name='lib.map_l') ]) ]) ]), PPTermUnk( name='Unk', sort=PPFuncSort(args=[ PPListSort( param_sort=PPTensorSort(param_sort=PPBool(), shape=[ PPDimConst( value=1), PPDimConst(value=1) ])) ], rtpe=PPFuncSort( args=[PPSortVar(name='A_1_2')], rtpe=PPSortVar(name='B_1')))) ]), PPFuncApp(fn=PPVar(name='lib.map_l'), args=[PPVar(name='lib.recogFive')]) ]) prog1 = PPFuncApp(fn=PPVar(name='lib.map_l'), args=[PPVar(name='lib.recogFive')]) lib = mkDefaultLib() addRecogFive(lib) sortInferred = inferType(prog1, lib) print(sortInferred) sort = PPFuncSort(args=[ PPFuncSort(args=[ PPListSort(param_sort=PPListSort(param_sort=PPListSort( param_sort=PPSortVar(name='A_1')))) ], rtpe=PPListSort(param_sort=PPListSort(param_sort=PPListSort( param_sort=PPSortVar(name='B'))))) ], rtpe=PPTensorSort( param_sort=PPReal(), shape=[PPDimConst(value=1), PPDimConst(value=1)])) print(repr_py_sort(sort))