Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
def testInfer8():
    lib = mkDefaultLib()

    addRecogFive(lib)

    prog = PPVar(name='lib.map_l')
    sortInferred = inferType(prog, lib)
    print(repr_py_sort(sortInferred))
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
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))