def METHOD_NAME():
    InVec, InLabel, ValVec, ValLabel = load_data()
    initializer = tf.contrib.layers.xavier_initializer()
    inputs = tf.placeholder(tf.float32, [None, FEATURE_SIZE], name="input_X")
    labels = tf.placeholder(tf.float32,[None, TOTAL_LABEL_SIZE], name = "label")
    W = tf.Variable(initializer([FEATURE_SIZE, TOTAL_LABEL_SIZE]), name="Weight")
    B = tf.Variable(tf.zeros([TOTAL_LABEL_SIZE]), name="Bias")
    logits = tf.matmul(inputs, W)+B
    hypothesis = tf.nn.softmax(logits)
    loss_i = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=labels)
    loss = tf.reduce_mean(loss_i)
    optimizer = tf.train.AdamOptimizer(1e-4).minimize(loss)
    prediction = tf.argmax(hypothesis, 1)
    correct_prediction = tf.equal(prediction, tf.argmax(labels,1))
    accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    init = tf.global_variables_initializer()
    saver = tf.train.Saver()
    with tf.Session() as sess:
        sess.run(init)
        for epochs in range(training_epoch):
            avg_loss=0
            count = 0
            genTrainData=datagen(InVec, InLabel, batch_size)
            for x_batch, y_batch in genTrainData:
                l,_ = sess.run([loss, optimizer],feed_dict = {inputs:x_batch, labels:y_batch})
                avg_loss+=l
                count += 1
            avg_loss = avg_loss/count
            saver.save(sess, 'saved_model/model.ckpt')
            count =0
            train_accuracy = 0.0
            genValidationData = datagen(ValVec, ValLabel, batch_size)
            for x_batch, y_batch in genValidationData:
                train_accuracy+=accuracy.eval(feed_dict={inputs:x_batch, labels:y_batch})
                count += 1
            total_acc = train_accuracy/count*100.0
            print ('Epochs:', '%06d' % (epochs+1), 'loss =', '{:.9f}'.format(avg_loss), 'Accuracy:', '{:.9f}'.format(total_acc))