training=training_pl,
                        zero_centered=ZERO_CENTER)

    #    print(scores_pred.shape)
    #    sys.exit(0)

    # losses
    print("Losses ...")
    sys.stdout.flush()
    loss = model.compute_loss(scores_pl, scores_pred)

    #    sys.exit(0)
    # define trainer
    print("Train_op ...")
    sys.stdout.flush()
    train_op, global_step = model.train_op(loss, LR, beta1=BETA1, beta2=BETA2)

    #    sys.exit(0)

    # define summaries
    print("Summaries ...")
    sys.stdout.flush()
    train_loss_summary = tf.summary.scalar("train_loss", loss)
    valid_loss_pl = tf.placeholder(
        dtype=tf.float32, shape=[])  # placeholder for mean validation loss
    valid_loss_summary = tf.summary.scalar("valid_loss", valid_loss_pl)

    # summaries and graph writer
    print("Initializing summaries writer ...")
    sys.stdout.flush()
    if CONTINUE_TRAINING:  # if continuing training, no need to write the graph again to the events file