def test1(): data = [0.0,1.0] fg = construct_fg(data) fg.init() print fg() for i in range(len(data)): print "z[{}]: {{{}, {}}}".format(i, fg["z",i].moments(0), fg["z",i].moments(1)) print "mu1: ", fg["mu1"].moments(0) print "mu2: ", fg["mu2"].moments(0)
def test2(): # generate some data data1 = np.random.normal(-0.1, 0.1, 100) data2 = np.random.normal( 0.1, 0.1, 200) data = np.append(data1, data2) # construct and execute the factor graph fg = construct_fg(data) fg.init() bound = fg() plot_fg(fg, data1, data2, bound[3:])
fg += normal_vnode_t("x") fg += normal_vnode_t("vmu1") fg += normal_vnode_t("vmu2") fg += normal_fnode_t("fmu1", 0, 10) fg += normal_fnode_t("fmu2", 0, 10) fg += categorical_fnode_t("fz", 2) fg += categorical_vnode_t("vz", 2) fg += dirichlet_fnode_t("fdir", [1,1]) fg += dirichlet_vnode_t("vdir", 2) fg.link("fz:output", "vz") fg.link("fmu1:output", "vmu1") fg.link("fmu2:output", "vmu2") fg.link("m1:indicator", "vz") fg.link("m1:f1:mean", "vmu1") fg.link("m1:f2:mean", "vmu2") fg.link("m1:output", "x") fg.link("fdir:output", "vdir") fg.link("fz:theta", "vdir") fg.variable_node("x").condition(data) return fg # test ################################################################################ data = [0] # construct and execute the factor graph fg = construct_fg(data) fg.init() bound = fg()