Ejemplo n.º 1
0
def main(args):
    print("------------Start Evaluation-----------")
    print("CheckPoint : {}".format(FLAGS.ckpt_dir))
    print("Network : {}".format(FLAGS.network))
    print("data : {}".format(FLAGS.data))
    print("---------------------------------------")

    # load dataset
    data = Load(FLAGS.data)
    batch_size = 3000
    iteration = data.x_test.shape[0] // batch_size
    test = data.load_test(data.x_test, data.y_test, batch_size)
    test_iter = test.make_initializable_iterator()
    inputs, labels = test_iter.get_next()

    model_set = set_model(data.output_dim)
    model = eval(FLAGS.network)(model=model_set, name=FLAGS.network, out_dim=data.output_dim, lr=0, opt=None, trainable=False)
    logits = model.inference(inputs)
    logits  = tf.identity(logits, name="output_logits")
    correct_prediction = tf.equal(tf.argmax(logits,1), tf.argmax(labels, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

    tf.train.Saver()
    with tf.Session() as sess:
        sess.run([test_iter.initializer],feed_dict={data.test_placeholder: data.x_test,
                                        data.test_labels_placeholder: data.y_test})
        utils = Utils(sess=sess)
        if utils.restore_model(FLAGS.ckpt_dir):
            avg_accuracy = 0
            for i in range(iteration):
                test_accuracy = sess.run(accuracy)
                avg_accuracy += test_accuracy
                print("accuracy_{} : {}".format(i, test_accuracy))
            print("average_accuracy : {}".format(avg_accuracy / iteration))
            return
        else:
            return
Ejemplo n.º 2
0
    def get_class(self, labels):
        l = [(np.sum(labels == i), i) for i in set(labels)]
        l = np.array(l, dtype=[('x', np.int16), ('y', np.int16)])
        return np.sort(l, order='x')[::-1]

    def predit(self, x):
        topk = self.get_topk(x)
        c = self.get_class(topk[1])
        confidence = c[0][0] / self.k
        clazz = c[0][1]
        return clazz, confidence


if __name__ == '__main__':
    load = Load()
    train, test = load.load_train(2000), load.load_test(200)
    print('获取数据成功:', train[0].shape, train[1].shape)

    #预处理标签
    train_labels, test_labels = np.argmax(train[1], axis=1), np.argmax(test[1],
                                                                       axis=1)
    classify = Classify(6, train[0], train_labels)

    ylabel, y_label = np.array([]), np.array([])
    for test_item, i in zip(test[0], np.arange(0, test[0].shape[0])):
        x = test_item
        # print(x.shape)
        y = test_labels[i]
        # topk=classify.get_topk(x)
        #
        # # print('k:',topk[1])