def create_objects(status):
    status.Data_gen = GeneratorFromImage.GeneratorFromImage(status.Comp,
                                                            status.S,
                                                            cuda=status.cuda)
    status.Data_gen.dataConv2d()
    dataGen = status.Data_gen
    x = dataGen.size[1]
    y = dataGen.size[2]
    max_layers = status.max_layer
    max_filters = status.max_filter

    def condition(DNA):
        return max_filter(max_layer(DNA, max_layers), max_filters)

    version = status.typos_version
    """
    center=((-1,1,3,x,y),
            (0,3, 4, x, y),
            (1, 4, 2), (2,),(3,-1,0),(3,0,1),
            (3,1,2))"""
    center = ((-1, 1, 3, x, y), (0, 3, 15, 3, 3), (0, 18, 15, 3, 3),
              (0, 33, 15, x, y), (1, 15, 2), (2, ), (3, -1, 0), (3, 0, 1),
              (3, -1, 1), (3, 1, 2), (3, 0, 2), (3, -1, 2), (3, 2, 3), (3, 3,
                                                                        4))
    selector = status.Selector_creator(condition=condition, directions=version)
    status.Selector = selector
    creator = status.Creator
    selector.update(center)
    actions = selector.get_predicted_actions()
    space = DNA_Graph(center, 1, (x, y), condition, actions, version, creator)
    if status.Alai:
        stream = TorchStream(status.Data_gen,
                             status.log_size,
                             min_size=status.min_log_size,
                             Alai=status.Alai)
    else:
        stream = TorchStream(status.Data_gen,
                             status.log_size,
                             min_size=status.min_log_size)
    Phase_space = DNA_Phase_space(space, stream=stream)
    Dynamics = Dynamic_DNA(space,
                           Phase_space,
                           status.dx,
                           Creator=creator,
                           Selector=selector,
                           update_velocity=velocity_updater,
                           update_space=space_updater,
                           version=version,
                           mutation_coefficient=status.mutation_coefficient,
                           clear_period=status.clear_period)
    Phase_space.create_particles(status.n)
    Phase_space.beta = status.beta
    Phase_space.alpha = status.alpha
    Phase_space.influence = status.influence
    status.Dynamics = Dynamics
    status.objects = Dynamics.objects
Beispiel #2
0
def create_objects(status):
    status.Data_gen = GeneratorFromImage.GeneratorFromImage(status.Comp,
                                                            status.S,
                                                            cuda=False)
    status.Data_gen.dataConv2d()
    dataGen = status.Data_gen
    x = dataGen.size[1]
    y = dataGen.size[2]

    def condition(DNA):
        output = True
        if DNA:
            for num_layer in range(0, len(DNA) - 3):
                layer = DNA[num_layer]
                x_l = layer[3]
                y_l = layer[4]
                output = output and (x_l < x) and (y_l < y)
        if output:
            return max_filter(max_layer(DNA, 3), 40)

    typos = []
    print('The value of typos is')
    print(status.typos)
    #for element in status.typos:
    #    if type(element) == list:
    #        typos.append(tuple(element))
    #    else:
    #        typos.append(element)
    #status.typos=tuple(typos)
    #Number of filters
    #center=((0, 3, 2, x, y), (1, 2, 2), (2,))
    #space=DNA_Graph(center,status.dx,(x,y),condition,(0,(1,1,0,0)))
    #Dimension of kernel
    center = ((0, 3, 5, 3, 3), (0, 8, 8, 3, 3), (0, 11, 5, x, y), (1, 5, 2),
              (2, ))
    #center=((0, 3, 2, x, y), (1, 2, 2), (2,))
    version = 'inclusion'
    space = space = DNA_Graph(center, status.dx, (x, y), condition,
                              (0, (1, 0, 0, 0), (0, 0, 1, 1), (0, 1, 0, 0)),
                              version)
    #space=space=DNA_Graph(center,1,(x,y),condition,(0,(1,0,0,0)),version)
    Phase_space = DNA_Phase_space(space)
    Dynamics = Dynamic_DNA(space, Phase_space, status.dx)
    Phase_space.create_particles(status.n)
    Phase_space.beta = status.beta
    Phase_space.alpha = status.alpha
    Phase_space.influence = status.influence
    status.Dynamics = Dynamics
    status.objects = Dynamics.objects
Beispiel #3
0
def initialize():
    S = 100
    Comp = 2
    dataGen = GeneratorFromImage.GeneratorFromImage(Comp, S, cuda=False)
    dataGen.dataConv2d()
    x = dataGen.size[1]
    y = dataGen.size[2]
    ks = [2]

    def condition(DNA):
        return max_layer(DNA, 10)

    center = ((0, 3, ks[0], x, y), (1, ks[0], 2), (2, ))
    space = DNA_Graph(center, 10, (x, y), condition, (0, (1, 1, 0, 0)))
    Phase_space = DNA_Phase_space(space)
    return Phase_space
 def __init__(self,DNA_graph,
         Potential=None,Interaction=None,External=None):
     self.DNA_graph = DNA_graph
     self.objects = DNA_graph.objects
     self.num_particles = None
     self.beta=2
     self.alpha=50
     self.support=[]
     dataGen = GeneratorFromImage.GeneratorFromImage(2, 200, cuda=False)
     dataGen.dataConv2d()
     self.stream=TorchStream(dataGen,25)
     self.radius=10
     self.influence=2
     self.node_max_particles=None
     self.max_changed=False
     self.attach_balls()
Beispiel #5
0
def test_get_net():
    dataGen = GeneratorFromImage.GeneratorFromImage(2, 100, cuda=False)
    dataGen.dataConv2d()
    stream = TorchStream(dataGen, 10)
    x = stream.dataGen.size[1]
    y = stream.dataGen.size[2]
    DNA = create_DNA(2, dataGen)
    network = create_network(2, dataGen)
    stream.add_node(DNA)
    stream.link_node(DNA, network)
    log = stream.key2log(DNA)
    stream.charge_nodes()
    i = 0
    while i < 100:
        stream.charge_nodes()
        print(stream.findCurrentvalue(DNA))
        print(stream.get_net(DNA))
        stream.pop()
        i = i + 1
Beispiel #6
0
def test_charge():
    dataGen = GeneratorFromImage.GeneratorFromImage(2, 100, cuda=False)
    dataGen.dataConv2d()
    stream = TorchStream(dataGen, 10)
    x = stream.dataGen.size[1]
    y = stream.dataGen.size[2]
    DNA = create_DNA(2, dataGen)
    network = create_network(2, dataGen)
    stream.add_node(DNA)
    stream.link_node(DNA, network)
    log = stream.key2log(DNA)
    log.signal = True
    stream.charge_node(DNA)
    i = 0
    while i < 100:
        stream.charge_nodes()
        print(log.log)
        print('With signal on')
        print(len(stream.Graph.key2node))
        stream.key2signal_on(DNA)
        stream.pop()
        i = i + 1
    stream.remove_node(DNA)
    network = create_network(2, dataGen)
    stream.add_node(DNA)
    stream.link_node(DNA, network)
    log = stream.key2log(DNA)
    stream.charge_nodes()
    log.signal = False
    i = 0
    while i < 100:
        print(log.log)
        print('With signal off')
        print(len(stream.Graph.key2node))
        stream.charge_nodes()
        stream.pop()
        i = i + 1
Beispiel #7
0
        inputs, labels = a[0] / 255, a[1]

        for j in range(24000):
            # zero the parameter gradients
            optimizer.zero_grad()

            # forward + backward + optimize
            outputs = net(inputs)
            loss = criterion(outputs, labels)
            loss.backward()
            optimizer.step()

            # print statistics
            running_loss += loss.item()

            if j % 2000 == 1999:    # print every 2000 mini-batches
                print("Energy: ", running_loss, "i = ", j+1)
                #net.delete_attribute("fc2")
                running_loss = 0.0


dataGen = GeneratorFromImage.GeneratorFromImage(2, 15000, cuda=True)
dataGen.dataConv2d()
size = dataGen.size


x = size[1]
y = size[2]
k = 2

Test_dynamicNetwork(dataGen)
Beispiel #8
0
from DAO import GeneratorFromCIFAR, GeneratorFromImage, GeneratorFromImageNet

dataGenImage = GeneratorFromImage.GeneratorFromImage(2, 120)
#dataGenImageNet = GeneratorFromImageNet.GeneratorFromImageNet(5, 200)
#dataGenCIFAR = GeneratorFromCIFAR.GeneratorFromCIFAR(5, 250)

dataGenImage.dataConv3d()
#dataGenImage.dataConv3d()
#dataGenImage.dataNumpy()

print(dataGenImage.data[0][0].shape)

dataGenImage.dataNumpy()
print(dataGenImage.data[0][0].shape)
Beispiel #9
0
def test_add_net():
    dataGen = GeneratorFromImage.GeneratorFromImage(2, 100, cuda=False)
    dataGen.dataConv2d()
    stream = TorchStream(dataGen, 10)
    DNA = create_DNA(2, dataGen)
    stream.add_net(DNA)
Beispiel #10
0
def test_get_energy():
    dataGen = GeneratorFromImage.GeneratorFromImage(2, 100, cuda=False)
    dataGen.dataConv2d()
    stream = TorchStream(dataGen, 10)
    stream.findCurrentvalue((0, 0, 0))