def test_classification(): num_class = 10 print 'initialize Neural Network.' nn_obj = dp.obj_load('./learn-classification-batch.pkl') print 'read test data.' test_data = dp.obj_load_gzip('../../mnist/mnist-test_data.pkl.gz') print 'read test label.' test_label = dp.obj_load_gzip('../../mnist/mnist-test_label.pkl.gz') print 'data size : ', len(test_data) print 'label size : ', len(test_label) data_num = len(test_data) prediction_error = [] prediction_recog = [] print '--start--' print '@@ Test Character Recognition @@' for j in range(0, data_num): prg.show_progressxxx(j+1, data_num) num_recog, list_recog = nn_obj.test(test_data[j], test_label[j]) if test_label[j][num_recog] == 0: prediction_error.append((test_label[j], num_recog)) prg.end_progress() count = len(prediction_error) for item in prediction_error: print "Truth:", np.argmax(item[0]), ", --> But predict:", item[1] print '' print 'error : ', count, '/', data_num, '(', count * 1.0 / data_num * 100.0, '%)' return
import dump as dp import progress as prg start = time.time() # XORの入出力データ input_data = [[0., 0.], [0., 1.], [ 1., 0.], [ 1., 1.]] teach_data = [ [0.], [1.], [1.], [0.]] data_num = len(input_data) print '--start--' print '@@ Show before learning @@' neuro_obj = dp.obj_load('./default-br.dump') for i in range(0, data_num): print '------Input[%d]------' % i neuro_obj.test(input_data[i], teach_data[i]) neuro_obj.show_element('input') neuro_obj.show_element('output') neuro_obj.show_element('ttlerr') print '' print '@@ Show after learning @@' neuro_obj = dp.obj_load('./learn-br.dump') for i in range(0, data_num): print '------Input[%d]------' % i neuro_obj.test(input_data[i], teach_data[i]) neuro_obj.show_element('input') neuro_obj.show_element('output')
import numpy as np import Mln as mln import dump as dp import progress as prg import image as img from sklearn.datasets import load_digits from sklearn.cross_validation import train_test_split from sklearn.preprocessing import LabelBinarizer from sklearn.metrics import confusion_matrix, classification_report teach_data = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] # dummy print '--start--' print '@@ Show after learning @@' neuro_obj = dp.obj_load('./learn-cr.dump') def recognition_digit_image(fname, digit = 100): im = cv2.imread(fname) im = img.change_size_with_size(im, 28, 28) im = img.change_grayscale(im) im = 255 - im input_data = im input_data = input_data.astype(np.float64) input_data = im / im.max() input_data = np.reshape(input_data, (1, 28*28)) neuro_obj.test(input_data, teach_data) output = neuro_obj.get_output() if digit >=0 and digit <= 9: print "judged:", neuro_obj.get_max_output_index(),
import Mln as mln import dump as dp import progress as prg start = time.time() # XORの入出力データ input_data = [[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]] teach_data = [[0.0], [1.0], [1.0], [0.0]] data_num = len(input_data) print "--start--" print "@@ Show before learning @@" neuro_obj = dp.obj_load("./default-br.dump") for i in range(0, data_num): print "------Input[%d]------" % i neuro_obj.test(input_data[i], teach_data[i]) neuro_obj.show_element("input") neuro_obj.show_element("output") neuro_obj.show_element("ttlerr") print "" print "@@ Show after learning @@" neuro_obj = dp.obj_load("./learn-br.dump") for i in range(0, data_num): print "------Input[%d]------" % i neuro_obj.test(input_data[i], teach_data[i]) neuro_obj.show_element("input") neuro_obj.show_element("output")
print "judged:", neuro_obj.get_max_output_index() # if you wanna show image then you delete comment-out fllowing 3 lines. im = cv2.resize(im, (28*10, 28*10)) cv2.imshow("input_data", im) cv2.waitKey(0) cv2.destroyAllWindows() teach_data = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] # dummy print '--start--' print '@@ Show after learning @@' #neuro_obj = dp.obj_load('./learn-classification.pkl') # online training's pkl neuro_obj = dp.obj_load('./learn-classification-batch.pkl') # batch training's pkl recognition_digit_image("../../hand-writing-number/0.png", 0) recognition_digit_image("../../hand-writing-number/1.png", 1) recognition_digit_image("../../hand-writing-number/2.png", 2) recognition_digit_image("../../hand-writing-number/3.png", 3) recognition_digit_image("../../hand-writing-number/4.png", 4) recognition_digit_image("../../hand-writing-number/5.png", 5) recognition_digit_image("../../hand-writing-number/6.png", 6) recognition_digit_image("../../hand-writing-number/7.png", 7) recognition_digit_image("../../hand-writing-number/8.png", 8) recognition_digit_image("../../hand-writing-number/9.png", 9) # judging '9' is success. recognition_digit_image("../../hand-writing-number/number.png")
else : print "judged(miss) :", neuro_obj.get_max_output_index() else: print "judged:", neuro_obj.get_max_output_index() # if you wanna show image then you delete comment-out fllowing 3 lines. # cv2.imshow("input_data", im) # cv2.waitKey(0) # cv2.destroyAllWindows() teach_data = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] # dummy print '--start--' print '@@ Show after learning @@' neuro_obj = dp.obj_load('./learn-classification.pkl') # online training's pkl #neuro_obj = dp.obj_load('./learn-classification-batch.pkl') # batch training's pkl recognition_digit_image("../../hand-writing-number/0.png", 0) recognition_digit_image("../../hand-writing-number/1.png", 1) recognition_digit_image("../../hand-writing-number/2.png", 2) recognition_digit_image("../../hand-writing-number/3.png", 3) recognition_digit_image("../../hand-writing-number/4.png", 4) recognition_digit_image("../../hand-writing-number/5.png", 5) recognition_digit_image("../../hand-writing-number/6.png", 6) recognition_digit_image("../../hand-writing-number/7.png", 7) recognition_digit_image("../../hand-writing-number/8.png", 8) recognition_digit_image("../../hand-writing-number/9.png", 9) # judging '9' is success.