Exemplo n.º 1
0
def display_space():
    domain_mapping, data, dim_names = xml_to_dict("Dataset\\prototypes.xml")
    domain_mapping, data, dim_names = xml_to_dict(
        "Dataset\\exemplars.xml",
        domain_mapping=domain_mapping,
        data=data,
        dimension_names=dim_names)
    domain_mapping, data, dim_names = less_dimensions(
        domain_mapping=domain_mapping, data=data, dim_names=dim_names)
    space.init(len(dim_names), domain_mapping, dim_names)
    concepts = form_supercategories(data)
    for name, values in zip(concepts, concepts.values()):
        if not name == 'mammal':
            family_into_space(name, values, add=True)
    ci.init(dims=[6, 7, 8])

    ''
Exemplo n.º 2
0
for category in ordered_dict:
    print('putting',category,'into space')
    cuboids=[]
    domains = {}
    for example in ordered_dict[category]:
        if not is_consistent(concepts[example]):
            print(example,' is inconsistent')
        else:
            subdomains={domain:space._domains[domain] for domain in concepts[example] if not domain == 'supercategory'}
            point=[concepts[example].get(domain,{str(key):float("inf") for key in range(len(space._domains[domain]))}).values() for domain in space._domains]
            point=[p for dom in point for p in dom]
            #print(example)
            #print('point: ',point)
            cuboids.append(Cuboid([dim if not dim==float('inf') else -dim for dim in point], point, subdomains))
            domains.update(subdomains)
            #print(cuboids[-1]._p_max)
    #for cuboid in cuboids:
        #print('cuboid:',cuboid)
    core=from_cuboids(cuboids,domains)
    weights=Weights(space._def_dom_weights,space._def_dim_weights)
    concept=Concept(core, 1.0, 0.5, weights)
    space.add_concept(category,concept,'orange')
    
    
        #print(space._concepts[concept].membership_of([p if not p==float('-inf') else 0 for p in p_min]))
        #print(space._concepts[concept].membership_of(p_max))
            #print(bear.subset_of(space._concepts[concept]))
'''print('amphibian:')
print(space._concepts['amphibian'])'''
ci.init()
Exemplo n.º 3
0
def generate(target='bird', dims=[6, 7, 8], n=None):
    #read concepts from prototypes and exemplars
    domain_mapping, data, dim_names = xml_to_dict("Dataset\\prototypes.xml")
    domain_mapping, data, dim_names = xml_to_dict(
        "Dataset\\exemplars.xml",
        domain_mapping=domain_mapping,
        data=data,
        dimension_names=dim_names)
    domain_mapping, data, dim_names = less_dimensions(
        domain_mapping=domain_mapping, data=data, dim_names=dim_names)
    space.init(len(dim_names), domain_mapping, dim_names)
    concepts = form_supercategories(data)
    testdata = deserialize_testdata('testdata.pkl')
    if not n:
        n = random.choice(list(range(len(testdata[target]))))
    ex = {'target': target, 'point': testdata[target][n], 'n': n}
    sibblings = [family for family in concepts if not family == target]
    print(ex)
    centers = np.array(concepts[target]).T
    means = []
    for dimension in range(len(centers)):
        means.append(
            np.average([
                value for value in centers[dimension]
                if not value == float('inf')
            ]))
    means = [mean if not np.isnan(mean) else float('inf') for mean in means]

    aps = evaluate_example(ex,
                           data,
                           concepts,
                           domain_mapping,
                           dim_names,
                           method=two_cubs_PCA,
                           testdata=testdata,
                           criterion=ap_balanced)
    aps = aps[list(aps.keys())[0]]
    space.init(len(dim_names), domain_mapping, dim_names)

    for name, values in zip(concepts, concepts.values()):
        family_into_space(name, values, add=True)
    space.add_concept(
        'learnt_' + target,
        one_shot(ex['point'],
                 method=two_cubs_PCA,
                 sibblings=sibblings,
                 name="learnt_" + target,
                 learn_weights=False))
    space.add_concept(
        'cheated_' + target,
        one_shot(means,
                 method=two_cubs_PCA,
                 sibblings=sibblings,
                 name=target + 'cheated_' + target,
                 learn_weights=False))

    del (space._concepts['mammal'])

    ci.init(dims=dims)
    #ap_learnt, ap_naive, ap_known, ap_cheated, ap_supercheated
    print('learnt', aps[0])

    print('small', aps[1])

    print('big', aps[2])

    print('known', aps[3])

    print('cheated', aps[4])