def test_vgg(self, objData, normalize=False): if normalize is True: objData.normalization(self.normalization_max) count_success = 0 prob_predicted = [] plot_predicted = [] label_total = [] prob_total = np.random.random((0, self.num_class)) print('\n# TEST VGG TRAINED') for i in range(objData.total_batchs_complete): batch, label = objData.generate_batch() prob = self.sess.run(self.probVGG, feed_dict={self.x_batch: batch}) label_total = np.concatenate((label_total, label), axis=0) prob_total = np.concatenate((prob_total, prob), axis=0) # Acumulamos la presicion de cada iteracion, para despues hacer un promedio count, prob_predicted, plot_predicted = utils.process_prob( label, prob, predicted=prob_predicted, plot_predicted=plot_predicted) count_success = count_success + count objData.next_batch_test() # promediamos la presicion total print('\n# STATUS:') y_true = objData.labels y_prob = prob_predicted utils.metrics_multiclass(y_true, y_prob)
def test_model(net, sess_test, objData): total = objData.total_images count_success = 0 count_by_class = np.zeros([net.num_class, net.num_class]) prob_predicted = [] plot_predicted = [] label_total = [] prob_total = np.random.random((0, net.num_class)) print('\n# PHASE: Test classification') for i in range(objData.total_batchs_complete): batch, label = objData.generate_batch() prob, layer = sess_test.run([net.prob, net.relu6], feed_dict={vgg_batch: batch, train_mode: False}) label_total = np.concatenate((label_total, label), axis=0) prob_total = np.concatenate((prob_total, prob), axis=0) # save output of a layer # utils.save_layer_output(layer, label, name='Train_SNC4_relu6', dir='../data/features/') # utils.save_layer_output_by_class(layer, label, name='Train_SNC4', dir='../data/features/') count, prob_predicted, plot_predicted = utils.process_prob(label, prob, predicted=prob_predicted, plot_predicted=plot_predicted) count_success = count_success + count objData.next_batch_test() # promediamos la presicion total print('\n# STATUS:') y_true = objData.labels y_prob = prob_predicted accuracy_final = utils.metrics_multiclass(y_true, y_prob) return accuracy_final
def test_model(net, sess_test, objData, plot_result=False): count_success = 0 prob_predicted = [] plot_predicted = [] label_total = [] prob_total = np.random.random((0, net.num_class)) # Iteraciones por Batch, en cada iteracion la session de tensorflow procesa los 'n' datos de entrada print('\n# PHASE: Test classification') for i in range(objData.total_batchs_complete): batch, label = objData.generate_batch() prob = sess_test.run(net.net['prob'], feed_dict={ mlp_batch: batch, train_mode: False }) label_total = np.concatenate((label_total, label), axis=0) prob_total = np.concatenate((prob_total, prob), axis=0) # Acumulamos la presicion de cada iteracion, para despues hacer un promedio count, prob_predicted, plot_predicted = utils.process_prob( label, prob, predicted=prob_predicted, plot_predicted=plot_predicted) count_success = count_success + count objData.next_batch_test() # promediamos la presicion total print('\n# STATUS:') y_true = objData.labels y_prob = prob_predicted accuracy_total = utils.metrics(y_true, y_prob, plot_predicted, plot_result) # if plot_result is True: # utils.precision_recall(y_true=label_total, y_prob=prob_total, num_class=net.num_class) return accuracy_total