L2_fm = 1.0

dropoutRate = .8

n_epochs = 5

####
start = datetime.now()

# initialize a FM learner
learner = FM_FTRL_machine(fm_dim,
                          fm_initDev,
                          L1,
                          L2,
                          L1_fm,
                          L2_fm,
                          D,
                          alpha,
                          beta,
                          alpha_fm=alpha_fm,
                          beta_fm=beta_fm,
                          dropoutRate=dropoutRate)

print("Start Training:")
for e in range(n_epochs):

    # if it is the first epoch, then don't use L1_fm or L2_fm
    if e == 0:
        learner.L1_fm = 0.
        learner.L2_fm = 0.
    else:
        learner.L1_fm = L1_fm