def __init__( self, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=6, vocabulary=('.', 'a', 'an', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'semicircle', 'shape', 'square', 'there', 'triangle', 'yellow'), language=None, number_texts=10, ): world_generator = RandomAttributesGenerator( entity_counts=[1], validation_combinations=validation_combinations, test_combinations=test_combinations, max_provoke_collision_rate=0.0, collision_tolerance=0.0, boundary_tolerance=0.0) world_generator.world_size = 128 world_captioner = RegularTypeCaptioner(existing_attribute_rate=0.0) super(OneshapeSimpleTextselect, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language, number_texts=number_texts)
def __init__( self, entity_counts=(2, 3, 4, 5, 6, 7, 8), train_entity_counts=(2, 3, 4, 5, 7), validation_entity_counts=(6,), test_entity_counts=(8,), validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=6, vocabulary=('.', 'a', 'an', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'semicircle', 'shape', 'square', 'there', 'triangle', 'yellow'), language=None ): world_generator = RandomAttributesGenerator( entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, validation_combinations=validation_combinations, test_combinations=test_combinations, max_provoke_collision_rate=0.0, collision_tolerance=0.0, boundary_tolerance=0.0 ) world_captioner = RegularTypeCaptioner() super(MultishapeSimple, self).__init__( world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language )
def __init__(self, world_size=64, entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 14), validation_entity_counts=(13, ), test_entity_counts=(15, ), max_provoke_collision_rate=0.33, collision_tolerance=0.2, boundary_tolerance=0.2, pixel_noise_stddev=0.0): world_generator = RandomAttributesGenerator( entity_counts=entity_counts, world_size=world_size, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, max_provoke_collision_rate=max_provoke_collision_rate, collision_tolerance=collision_tolerance, boundary_tolerance=boundary_tolerance) num_classes = len(world_generator.shapes) * len( world_generator.colors) * len(world_generator.textures) super(Multishape, self).__init__(world_generator=world_generator, num_classes=num_classes, multi_class=True, class_count=False, pixel_noise_stddev=pixel_noise_stddev)
def __init__(self, entity_counts=(2, 3, 4, 5, 6, 7, 8), train_entity_counts=(2, 3, 4, 5, 7), validation_entity_counts=(6, ), test_entity_counts=(8, ), validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=8, vocabulary=('.', 'a', 'an', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'semicircle', 'shape', 'square', 'there', 'triangle', 'yellow'), language=None, number_texts=10): world_generator = RandomAttributesGenerator( entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, validation_combinations=validation_combinations, test_combinations=test_combinations) world_generator.world_size = 128 world_captioner = CaptionerMixer(captioners=( RegularTypeCaptioner(), ExistentialCaptioner(restrictor_captioner=RegularTypeCaptioner( hypernym_rate=1.0, logical_tautology_rate=1.0), body_captioner=AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer( captioners=( RegularAttributeCaptioner(), RegularTypeCaptioner())))))) super(MultishapeTextselect, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language, number_texts=number_texts)
def __init__(self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=None, entity_counts=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=None, validation_entity_counts=None, validation_count_rate=0.5, test_entity_counts=None, test_count_rate=0.5, max_provoke_collision_rate=0.33, multi_class=True, count_class=False, pixel_noise_stddev=0.0): world_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, max_provoke_collision_rate=max_provoke_collision_rate) num_classes = len(world_generator.shapes) * len( world_generator.colors) * len(world_generator.textures) super(ShapeDataset, self).__init__(world_generator=world_generator, num_classes=num_classes, multi_class=multi_class, count_class=count_class, pixel_noise_stddev=pixel_noise_stddev)
def __init__(self): world_generator = RandomAttributesGenerator(entity_counts=[1]) num_classes = len(world_generator.shapes) * len( world_generator.colors) * len(world_generator.textures) super(Oneshape, self).__init__(world_generator=world_generator, num_classes=num_classes)
def __init__(self, world_size=64, boundary_tolerance=0.2, pixel_noise_stddev=0.0): world_generator = RandomAttributesGenerator( entity_counts=[1], world_size=world_size, boundary_tolerance=boundary_tolerance) num_classes = len(world_generator.shapes) * len( world_generator.colors) * len(world_generator.textures) super(Oneshape, self).__init__(world_generator=world_generator, num_classes=num_classes, pixel_noise_stddev=pixel_noise_stddev)
def __init__(self, entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 14), validation_entity_counts=(13, ), test_entity_counts=(15, )): world_generator = RandomAttributesGenerator( entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts) num_classes = len(world_generator.shapes) * len( world_generator.colors) * len(world_generator.textures) super(Multishape, self).__init__(world_generator=world_generator, num_classes=num_classes, multi_class=True, class_count=False)
def __init__(self, entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=(5, 6, 7, 8, 9, 10, 11, 12, 14), validation_entity_counts=(13, ), test_entity_counts=(15, ), validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=14, vocabulary=('.', 'a', 'above', 'an', 'behind', 'below', 'blue', 'circle', 'closer', 'closest', 'cross', 'cyan', 'ellipse', 'farther', 'farthest', 'from', 'front', 'gray', 'green', 'in', 'is', 'left', 'magenta', 'of', 'pentagon', 'rectangle', 'red', 'right', 'semicircle', 'shape', 'square', 'than', 'the', 'to', 'triangle', 'yellow'), language=None): world_generator = RandomAttributesGenerator( entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, validation_combinations=validation_combinations, test_combinations=test_combinations) world_captioner = ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner(), body_captioner=RelationCaptioner( reference_captioner=RegularTypeCaptioner(), comparison_captioner=RegularTypeCaptioner(), relations=('x-rel', 'y-rel', 'z-rel', 'proximity-rel'))) super(Spatial, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language)
def __init__(self, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=9, vocabulary=('.', 'a', 'an', 'angular', 'asymmetric', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'round', 'semicircle', 'shape', 'square', 'symmetric', 'there', 'triangle', 'yellow'), language=None): world_generator = RandomAttributesGenerator( entity_counts=[1], validation_combinations=validation_combinations, test_combinations=test_combinations) world_captioner = CaptionerMixer(captioners=( RegularTypeCaptioner(existing_attribute_rate=0.0), ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner( hypernym_rate=1.0, existing_attribute_rate=0.0, logical_tautology_rate=1.0), body_captioner=AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer(captioners=( RegularAttributeCaptioner(existing_attribute_rate=0.0), RegularTypeCaptioner(existing_attribute_rate=0.0)))), pragmatical_tautology_rate=1.0))) super(Oneshape, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language)
def __init__( self, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=12, vocabulary=('.', 'a', 'above', 'an', 'below', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'left', 'magenta', 'of', 'pentagon', 'rectangle', 'red', 'right', 'semicircle', 'shape', 'square', 'the', 'to', 'triangle', 'yellow'), language=None ): world_generator = RandomAttributesGenerator( entity_counts=[2], validation_combinations=validation_combinations, test_combinations=test_combinations, max_provoke_collision_rate=0.0, collision_tolerance=0.0, boundary_tolerance=0.0 ) world_captioner = ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner( ), body_captioner=RelationCaptioner( reference_captioner=RegularTypeCaptioner(), comparison_captioner=RegularTypeCaptioner(), relations=('x-rel', 'y-rel') ), pragmatical_tautology_rate=1.0 ) super(SpatialSimple, self).__init__( world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, language=language )
def __init__( self, world_size=64, world_colors=('black',), shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid',), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=None, entity_counts=(3, 4, 5, 6, 7, 8, 9, 10), train_entity_counts=None, validation_entity_counts=None, test_entity_counts=None, validation_count_rate=0.5, test_count_rate=0.5, validation_combinations=None, test_combinations=None, validation_space_rate_range=(0.0, 1.0), test_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combination_rate=0.5, max_provoke_collision_rate=0.33, relations=('x-rel', 'y-rel', 'z-rel'), negation=True, existential_incorrect_distribution=(1, 1), relation_incorrect_distribution=(2, 1, 1), type_single_attribute='shape', type_existing_attribute_rate=1.0, caption_size=15, vocabulary=('.', 'a', 'above', 'an', 'as', 'behind', 'below', 'besides', 'bigger', 'blue', 'circle', 'closer', 'color', 'cross', 'cyan', 'darker', 'different', 'does', 'ellipse', 'exist', 'exists', 'farther', 'from', 'front', 'gray', 'green', 'in', 'is', 'left', 'lighter', 'magenta', 'not', 'of', 'pentagon', 'rectangle', 'red', 'right', 'same', 'semicircle', 'shape', 'smaller', 'square', 'than', 'the', 'to', 'triangle', 'yellow'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=None, caption_realizer='dmrs', language=None ): world_generator = RandomAttributesGenerator( world_size=world_size, world_colors=world_colors, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, validation_combinations=validation_combinations, validation_space_rate_range=validation_space_rate_range, validation_combination_rate=validation_combination_rate, test_combinations=test_combinations, test_space_rate_range=test_space_rate_range, test_combination_rate=test_combination_rate, max_provoke_collision_rate=max_provoke_collision_rate ) relation_captioner = RelationCaptioner( reference_captioner=SingleAttributeTypeCaptioner( attribute=type_single_attribute, existing_attribute_rate=type_existing_attribute_rate ), relations=relations, incorrect_distribution=relation_incorrect_distribution, comparison_captioner=UniqueTypeCaptioner() ) if negation: relation_captioner = NegationRelationCaptioner( relation_captioner=relation_captioner ) world_captioner = ExistentialCaptioner( restrictor_captioner=SingleAttributeTypeCaptioner( attribute=type_single_attribute, existing_attribute_rate=type_existing_attribute_rate ), body_captioner=relation_captioner, incorrect_distribution=existential_incorrect_distribution ) super(RelationalSingleAttributeDataset, self).__init__( world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language )
def __init__(self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=None, entity_counts=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), train_entity_counts=None, validation_entity_counts=None, test_entity_counts=None, validation_count_rate=0.5, test_count_rate=0.5, validation_combinations=None, test_combinations=None, validation_space_rate_range=(0.0, 1.0), test_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combination_rate=0.5, max_provoke_collision_rate=0.33, caption_size=8, vocabulary=('.', 'a', 'an', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'semicircle', 'shape', 'square', 'there', 'triangle', 'yellow'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=None, caption_realizer='dmrs', language=None): world_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, validation_combinations=validation_combinations, validation_space_rate_range=validation_space_rate_range, validation_combination_rate=validation_combination_rate, test_combinations=test_combinations, test_space_rate_range=test_space_rate_range, test_combination_rate=test_combination_rate, max_provoke_collision_rate=max_provoke_collision_rate) world_captioner = CaptionerMixer( captioners=(RegularTypeCaptioner(), ExistentialCaptioner( restrictor_captioner=CaptionerMixer( captioners=(EmptyTypeCaptioner(), RegularTypeCaptioner( hypernym_rate=1.0))), body_captioner=AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer( captioners=(RegularAttributeCaptioner(), RegularTypeCaptioner( hypernym_rate=0.0)))))), distribution=(1, 2)) super(ExistentialDataset, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language)
def __init__( self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=0.25, entity_counts=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=(1, 2, 4, 6, 7, 9, 11, 12, 14), validation_entity_counts=(3, 8, 13), validation_count_rate=0.5, test_entity_counts=(5, 10, 15), test_count_rate=0.5, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), validation_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), test_space_rate_range=(0.0, 1.0), test_combination_rate=0.5, max_provoke_collision_rate=0.33, reinforcement_range=(1, 3), caption_size=28, vocabulary=('.', 'a', 'above', 'all', 'an', 'and', 'are', 'as', 'at', 'behind', 'below', 'bigger', 'blue', 'but', 'circle', 'circles', 'closer', 'cross', 'crosses', 'cyan', 'darker', 'eight', 'either', 'ellipse', 'ellipses', 'exactly', 'farther', 'few', 'five', 'four', 'from', 'front', 'gray', 'green', 'half', 'in', 'is', 'least', 'left', 'less', 'lighter', 'magenta', 'many', 'more', 'most', 'no', 'none', 'not', 'of', 'one', 'or', 'pentagon', 'pentagons', 'quarter', 'quarters', 'rectangle', 'rectangles', 'red', 'right', 'semicircle', 'semicircles', 'seven', 'shape', 'shapes', 'six', 'smaller', 'square', 'squares', 'than', 'the', 'there', 'third', 'thirds', 'three', 'to', 'triangle', 'triangles', 'twice', 'two', 'yellow', 'zero'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=0.0, caption_realizer='dmrs', language=None): random_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, validation_combinations=validation_combinations, test_combinations=test_combinations, max_provoke_collision_rate=max_provoke_collision_rate) reinforced_attributes_generator = ReinforcedAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, test_entity_counts=test_entity_counts, validation_combinations=validation_combinations, test_combinations=test_combinations, max_provoke_collision_rate=max_provoke_collision_rate, reinforcement_range=reinforcement_range) world_generator = GeneratorMixer( generators=(random_generator, reinforced_attributes_generator)) body_captioner = AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer( captioners=(RegularAttributeCaptioner(), RegularTypeCaptioner()))) existential_captioner = CaptionerMixer(captioners=( RegularTypeCaptioner(), ExistentialCaptioner(restrictor_captioner=RegularTypeCaptioner( hypernym_rate=1.0, logical_tautology_rate=1.0), body_captioner=body_captioner))) relation_captioner = ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner(), body_captioner=RelationCaptioner( reference_captioner=RegularTypeCaptioner(), comparison_captioner=RegularTypeCaptioner())) quantifier_captioner = QuantifierCaptioner( restrictor_captioner=RegularTypeCaptioner( hypernym_rate=1.0, logical_tautology_rate=1.0), body_captioner=body_captioner) number_bound_captioner = NumberBoundCaptioner( quantifier_captioner=quantifier_captioner) comparative_quantifier_captioner = ComparativeQuantifierCaptioner( restrictor_captioner=RegularTypeCaptioner(hypernym_rate=1.0), comparison_captioner=RegularTypeCaptioner(hypernym_rate=1.0), body_captioner=body_captioner) quantification_captioner = CaptionerMixer( captioners=(quantifier_captioner, number_bound_captioner, comparative_quantifier_captioner), distribution=[2, 2, 1]) world_captioner = CaptionerMixer(captioners=( ConjunctionCaptioner(captioners=(existential_captioner, relation_captioner, quantification_captioner)), DisjunctionCaptioner(captioners=(existential_captioner, relation_captioner, quantification_captioner)))) super(Combination, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language)
def __init__( self, world_size=64, world_colors=('black',), shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid',), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=None, entity_counts=(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=None, validation_entity_counts=None, test_entity_counts=None, validation_count_rate=0.5, test_count_rate=0.5, validation_combinations=None, test_combinations=None, validation_space_rate_range=(0.0, 1.0), test_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combination_rate=0.5, caption_size=31, # vocabulary=('.', 'a', 'above', 'all', 'an', 'and', 'are', 'as', 'at', 'behind', 'below', 'besides', 'bigger', 'biggest', 'blue', 'but', 'circle', 'circles', 'closer', 'closest', 'color', 'cross', 'crosses', 'cyan', 'darker', 'darkest', 'different', 'eight', 'either', 'ellipse', 'ellipses', 'exactly', 'exists', 'farther', 'farthest', 'few', 'five', 'four', 'from', 'front', 'gray', 'green', 'half', 'if', 'in', 'is', 'least', 'left', 'leftmost', 'less', 'lighter', 'lightest', 'lower', 'lowermost', 'magenta', 'many', 'more', 'most', 'no', 'none', 'not', 'of', 'one', 'only', 'or', 'pentagon', 'pentagons', 'quarter', 'quarters', 'rectangle', 'rectangles', 'red', 'right', 'rightmost', 'same', 'semicircle', 'semicircles', 'seven', 'shape', 'shapes', 'six', 'smaller', 'smallest', 'square', 'squares', 'than', 'the', 'there', 'third', 'thirds', 'three', 'to', 'triangle', 'triangles', 'twice', 'two', 'upper', 'uppermost', 'yellow', 'zero'), pixel_noise_stddev=None, ): values = dict(world_l='world', world_model_l='model', world_r='world', world_model_r='model', caption='language', caption_length='alternatives(int)') vectors = dict(caption=caption_size) super(GenNLVRDataset, self).__init__(values=values, world_size=world_size, vectors=vectors, pixel_noise_stddev=pixel_noise_stddev) world_generator = RandomAttributesGenerator( world_size=world_size, world_colors=world_colors, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, validation_combinations=validation_combinations, validation_space_rate_range=validation_space_rate_range, validation_combination_rate=validation_combination_rate, test_combinations=test_combinations, test_space_rate_range=test_space_rate_range, test_combination_rate=test_combination_rate, max_provoke_collision_rate=0. # set to zero here ) self.world_generator = world_generator self.meta_generator = MetaGenerator( world_size=world_size, world_colors=world_colors, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance ) self.captioner = GenNLVRCaptioner()
def __init__( self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, collision_tolerance=0.25, collision_shade_difference=0.5, boundary_tolerance=None, entity_counts=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), train_entity_counts=None, validation_entity_counts=None, test_entity_counts=None, validation_count_rate=0.5, test_count_rate=0.5, validation_combinations=None, test_combinations=None, validation_space_rate_range=(0.0, 1.0), test_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combination_rate=0.5, max_provoke_collision_rate=0.33, reinforcement_range=(1, 3), generators=None, captioners=None, connectives=None, caption_size=28, vocabulary=('.', 'a', 'above', 'all', 'an', 'and', 'are', 'as', 'at', 'behind', 'below', 'bigger', 'blue', 'but', 'circle', 'circles', 'closer', 'color', 'cross', 'crosses', 'cyan', 'darker', 'different', 'eight', 'either', 'ellipse', 'ellipses', 'exactly', 'farther', 'few', 'five', 'four', 'from', 'front', 'gray', 'green', 'half', 'if', 'in', 'is', 'least', 'left', 'less', 'lighter', 'magenta', 'many', 'more', 'most', 'no', 'none', 'not', 'of', 'one', 'only', 'or', 'pentagon', 'pentagons', 'quarter', 'quarters', 'rectangle', 'rectangles', 'red', 'right', 'same', 'semicircle', 'semicircles', 'seven', 'shape', 'shapes', 'six', 'smaller', 'square', 'squares', 'than', 'the', 'there', 'third', 'thirds', 'three', 'to', 'triangle', 'triangles', 'twice', 'two', 'yellow', 'zero'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=0.0, caption_realizer='dmrs', language=None): generator_list = list() if generators is None or 'random' in generators: random_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, validation_combinations=validation_combinations, validation_space_rate_range=validation_space_rate_range, validation_combination_rate=validation_combination_rate, test_combinations=test_combinations, test_space_rate_range=test_space_rate_range, test_combination_rate=test_combination_rate, max_provoke_collision_rate=max_provoke_collision_rate) generator_list.append(random_generator) if generators is None or 'reinforced' in generators: reinforced_generator = ReinforcedAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=collision_tolerance, collision_shade_difference=collision_shade_difference, boundary_tolerance=boundary_tolerance, entity_counts=entity_counts, train_entity_counts=train_entity_counts, validation_entity_counts=validation_entity_counts, validation_count_rate=validation_count_rate, test_entity_counts=test_entity_counts, test_count_rate=test_count_rate, validation_combinations=validation_combinations, validation_space_rate_range=validation_space_rate_range, validation_combination_rate=validation_combination_rate, test_combinations=test_combinations, test_space_rate_range=test_space_rate_range, test_combination_rate=test_combination_rate, max_provoke_collision_rate=max_provoke_collision_rate, reinforcement_range=reinforcement_range) generator_list.append(reinforced_generator) world_generator = GeneratorMixer(generators=generator_list) restrictor_captioner = CaptionerMixer( captioners=(EmptyTypeCaptioner(), RegularTypeCaptioner(hypernym_rate=1.0))) body_captioner = AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer( captioners=(RegularAttributeCaptioner(), RegularTypeCaptioner(hypernym_rate=0.0)))) captioner_list = list() if captioners is None or 'existential' in captioners: existential_captioner = CaptionerMixer( captioners=(RegularTypeCaptioner(), ExistentialCaptioner( restrictor_captioner=restrictor_captioner, body_captioner=body_captioner)), distribution=(1, 2)) captioner_list.append(existential_captioner) if captioners is None or 'relational' in captioners: relational_captioner = ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner(), body_captioner=RelationCaptioner( reference_captioner=RegularTypeCaptioner(), comparison_captioner=RegularTypeCaptioner())) captioner_list.append(relational_captioner) if captioners is None or 'quantification' in captioners: quantification_captioner = QuantifierCaptioner( restrictor_captioner=restrictor_captioner, body_captioner=body_captioner) captioner_list.append(quantification_captioner) captioner = CaptionerMixer(captioners=captioner_list) captioner_list = list() if connectives is None or 'conjunction' in connectives: captioner_list.append(ConjunctionCaptioner(captioner=captioner)) if connectives is None or 'disjunction' in connectives: captioner_list.append(DisjunctionCaptioner(captioner=captioner)) if connectives is None or 'implication' in connectives: captioner_list.append(ImplicationCaptioner(captioner=captioner)) if connectives is None or 'equivalence' in connectives: captioner_list.append(EquivalenceCaptioner(captioner=captioner)) world_captioner = CaptionerMixer(captioners=captioner_list) super(LogicalDataset, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language)
def __init__(self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, boundary_tolerance=0.25, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), caption_size=9, vocabulary=('.', 'a', 'an', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'magenta', 'pentagon', 'rectangle', 'red', 'semicircle', 'shape', 'square', 'there', 'triangle', 'yellow'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=0.0, caption_realizer='dmrs', language=None): world_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, boundary_tolerance=boundary_tolerance, validation_combinations=validation_combinations, test_combinations=test_combinations, ) world_captioner = CaptionerMixer(captioners=( RegularTypeCaptioner(existing_attribute_rate=0.0), ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner( hypernym_rate=1.0, existing_attribute_rate=0.0, logical_tautology_rate=1.0), body_captioner=AttributeTypeRelationCaptioner( attribute_type_captioner=CaptionerMixer(captioners=( RegularAttributeCaptioner(existing_attribute_rate=0.0), RegularTypeCaptioner(hypernym_rate=0.0, existing_attribute_rate=0.0)))), pragmatical_tautology_rate=1.0))) super(Oneshape, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language)
def __init__(self, world_size=64, world_color='black', shapes=('square', 'rectangle', 'triangle', 'pentagon', 'cross', 'circle', 'semicircle', 'ellipse'), colors=('red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'gray'), textures=('solid', ), rotation=True, size_range=(0.1, 0.25), distortion_range=(2.0, 3.0), shade_range=0.4, boundary_tolerance=0.25, validation_combinations=(('square', 'red', 'solid'), ('triangle', 'green', 'solid'), ('circle', 'blue', 'solid')), validation_space_rate_range=(0.0, 1.0), validation_combination_rate=0.5, test_combinations=(('rectangle', 'yellow', 'solid'), ('cross', 'magenta', 'solid'), ('ellipse', 'cyan', 'solid')), test_space_rate_range=(0.0, 1.0), test_combination_rate=0.5, caption_size=14, vocabulary=('.', 'a', 'above', 'an', 'below', 'blue', 'circle', 'cross', 'cyan', 'ellipse', 'gray', 'green', 'is', 'left', 'magenta', 'of', 'pentagon', 'rectangle', 'red', 'right', 'semicircle', 'shape', 'square', 'the', 'to', 'triangle', 'yellow'), correct_ratio=0.5, train_correct_ratio=None, validation_correct_ratio=None, test_correct_ratio=None, worlds_per_instance=1, captions_per_instance=1, pixel_noise_stddev=0.0, caption_realizer='dmrs', language=None): world_generator = RandomAttributesGenerator( world_size=world_size, world_color=world_color, shapes=shapes, colors=colors, textures=textures, rotation=rotation, size_range=size_range, distortion_range=distortion_range, shade_range=shade_range, collision_tolerance=0.0, boundary_tolerance=boundary_tolerance, entity_counts=(2, ), validation_combinations=validation_combinations, test_combinations=test_combinations) world_captioner = ExistentialCaptioner( restrictor_captioner=RegularTypeCaptioner(), body_captioner=RelationCaptioner( reference_captioner=RegularTypeCaptioner(), comparison_captioner=RegularTypeCaptioner(), relations=('x-rel', 'y-rel') # , 'z-rel', 'proximity-rel' ), pragmatical_tautology_rate=1.0) super(Spatial, self).__init__(world_generator=world_generator, world_captioner=world_captioner, caption_size=caption_size, vocabulary=vocabulary, correct_ratio=correct_ratio, train_correct_ratio=train_correct_ratio, validation_correct_ratio=validation_correct_ratio, test_correct_ratio=test_correct_ratio, worlds_per_instance=worlds_per_instance, captions_per_instance=captions_per_instance, pixel_noise_stddev=pixel_noise_stddev, caption_realizer=caption_realizer, language=language)