def generate(self): # Select mutation operator. rand_mutation_probability = random.uniform(0, 1) if rand_mutation_probability >= MUTOPPROB: mutation = 1 else: mutation = 2 condition = True counter_mutations = 0 while condition: counter_mutations += 1 vector1, vector2 = mutation_manager.generate( self.digit.xml_desc, mutation) v1_xml_desc = vectorization_tools.create_svg_xml(vector1) rasterized_digit1 = rasterization_tools.rasterize_in_memory( v1_xml_desc) v2_xml_desc = vectorization_tools.create_svg_xml(vector2) rasterized_digit2 = rasterization_tools.rasterize_in_memory( v2_xml_desc) distance_inputs = get_distance(rasterized_digit1, rasterized_digit2) if distance_inputs != 0: condition = False first_digit = Digit(v1_xml_desc, EXPECTED_LABEL) second_digit = Digit(v2_xml_desc, EXPECTED_LABEL) first_digit.purified = rasterized_digit1 second_digit.purified = rasterized_digit2 return first_digit, second_digit, distance_inputs
def generate_digit(seed): seed_image = x_test[int(seed)] xml_desc = vectorization_tools.vectorize(seed_image) return Digit(xml_desc, EXPECTED_LABEL, seed)