Example #1
0
def run():
    dims = 20
    negrate = 1
    batsize = 100
    epochs = 3000

    path = "../../data/Family/SN-"
    traind, valid, test = family.getdata(path)

    lemb = VectorEmbed.indim(traind.numsubjs+2).outdim(dims).Wreg(l2reg(0.000001))()
    remb = VectorEmbed.indim(traind.numsubjs+2).outdim(dims).Wreg(l2reg(0.000001))()

    inp = Input(T.imatrix())

    out = ((inp[:, 0] >> lemb) & (inp[:, 2] >> remb)) >> DotProduct() >> Sigmoid()

    outtest = Output(T.fvector())

    loss = (out & outtest) >> MSELoss()

    trainer = Trainer\
        .batsize(batsize)\
        .epochs(epochs)\
        .onrun(getonrun())\
        .offrun(offrun)\
        .offepoch(getoffepoch(out))\
        .onbatch(getonbatch(negrate))\
        .optimizer(sgd(lr=1.))\
        .batchtransformer(transbat)
    trainer\
        .loss(loss)\

    trainer.train(traind, valid)\
           .test(test)
Example #2
0
def run():
    dims = 60
    negrate = 1
    batsize = 100
    epochs = 800

    path = "../../data/Family/SN-"
    traind, valid, test = family.getdata(path)

    semb = VectorEmbed.indim(traind.numsubjs+2).outdim(dims).Wreg(l2reg(0.000000001))()
    oemb = VectorEmbed.indim(traind.numsubjs+2).outdim(dims).Wreg(l2reg(0.000000001))()
    remb = MatrixEmbed.indim(traind.numrels).outdim(dims).idxoffset(traind.numsubjs+2).Wreg(l2reg(0.000000001))()


    inp = Input(T.imatrix())

    sembvec = (inp[:, 0] >> semb)

    sremb = (inp[:, 1] & sembvec) >> remb

    out = (sremb & (inp[:, 2] >> oemb)) >> DotProduct() >> Sigmoid()

    print out(np.asarray([[1, 720, 6]], dtype="int32"))

    outtest = Output(T.fvector())

    loss = (out & outtest) >> MSELoss()

    trainer = Trainer\
        .batsize(batsize)\
        .epochs(epochs)\
        .onrun(getonrun())\
        .offrun(offrun)\
        .offepoch(getoffepoch(out))\
        .onbatch(getonbatch(negrate))\
        .optimizer(sgd(lr=1.))\
        .batchtransformer(transbat)
    trainer\
        .loss(loss)\

    trainer.train(traind, valid)\
           .test(test)