create_classifier.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/python
  2. from Classifier import Classifier
  3. from create_characters import load_learning_set
  4. from data import exists, DATA_FOLDER
  5. def load_classifier(neighbours, blur_scale, c=None, gamma=None, verbose=0):
  6. classifier_file = DATA_FOLDER + 'classifier_%s_%s.dat' \
  7. % (blur_scale, neighbours)
  8. if exists(classifier_file):
  9. if verbose:
  10. print 'Loading classifier...'
  11. classifier = Classifier(filename=classifier_file, \
  12. neighbours=neighbours, verbose=verbose)
  13. elif c != None and gamma != None:
  14. if verbose:
  15. print 'Training new classifier...'
  16. classifier = Classifier(c=c, gamma=gamma, neighbours=neighbours, \
  17. verbose=verbose)
  18. learning_set = load_learning_set(neighbours, blur_scale, \
  19. verbose=verbose)
  20. classifier.train(learning_set)
  21. else:
  22. raise Exception('No soft margin and gamma specified.')
  23. return classifier
  24. if __name__ == '__main__':
  25. from sys import argv, exit
  26. if len(argv) < 3:
  27. print 'Usage: python %s NEIGHBOURS BLUR_SCALE [ C GAMMA ]' % argv[0]
  28. exit(1)
  29. neighbours = int(argv[1])
  30. blur_scale = float(argv[2])
  31. # Generate the classifier file
  32. if len(argv) > 4:
  33. c = float(argv[3])
  34. gamma = float(argv[4])
  35. load_classifier(neighbours, blur_scale, c=c, gamma=gamma, verbose=1)
  36. else:
  37. load_classifier(neighbours, blur_scale, verbose=1)