示例#1
0
    def __init__(self, layers, up_weights=None, down_weights=None):
        '''Initializes a BN from the layers given'''
        self.numlayers = len(layers)

        down_layers = [layer.__class__.from_layer(layer) for layer in layers[::-1]]#Copy list so that upnet and downnet layers are different objects
        self.upnet = NeuralNet(layers, up_weights)
        self.downnet = NeuralNet(down_layers, down_weights)
示例#2
0
def main():
    parser = argparse.ArgumentParser(description='Deblur image')
    parser.add_argument('-d','--data', help='Input data image')
    parser.add_argument('-o','--output', help='Output image')

    #START: Stage 0 load the image
    args = parser.parse_args()
    input_name = args.data
    img = cv2.imread(input_name)
    fig = plt.figure()
    ax1 = fig.add_subplot(2,2,1)
    ax1.imshow(img)

    #Stage 1 add padding
    img,y,x = add_padding(img)

    #Stage 2 openCV optimization

    #Stage 3 Machine Learning Deblur
    model = NeuralNet()
    img = model.predict(img)

    #Stage 4 More openCV

    #End
    ax2 = fig.add_subplot(2,2,2)
    img = remove_padding(img,x,y)
    ax2.imshow(img)
    plt.show()
示例#3
0
 def get_net(self):
     net = NeuralNet(self.layer_spec, self.activation_function,
                     self.regularisation_coefficient)
     if self.persistence_id:
         persist = Persist(self.persistence_id)
         if persist.exists():
             persist.load(net)
             print 'Loaded network from', persist.get_filename()
     return net
示例#4
0
            from_type3 = type3[0:n_inputs]
            from_type3_targets = type3_targets[0:n_inputs]

            from_type4 = type4[0:n_inputs]
            from_type4_targets = type4_targets[0:n_inputs]

            inputs = torch.cat((from_type1, from_type2, from_type3, from_type4), 0 )

            targets = torch.cat( (from_type1_targets,from_type2_targets,from_type3_targets,from_type4_targets)  ,0)

            args = dict()
            args['n_inputs'] = n_inputs
            args['n_neurons'] = n_neurons

            # Model
            net = NeuralNet(hidden_neurons=args['n_neurons'])

            criterion = nn.MSELoss(reduction="mean")
            optimizer = optim.SGD(net.parameters(), lr=learning_rate)
            hold_loss=[]

            EPOCHS = math.ceil(K /(n_inputs * 4))
            # prog_bar = Bar('Training...', suffix='%(percent).1f%% - %(eta)ds - %(index)d / %(max)d', max=EPOCHS )
            # Train loop
            for epoch in range(0, EPOCHS):
                running_loss = 0.0

                # Batch gradient descent
                optimizer.zero_grad()
                output = net(inputs)
                loss = criterion(output, targets)
示例#5
0
def train_alphazero(lr, dropout, num_channels, epochs, batch_size,
                    replay_buffer_size, temp_decrese_moves, mcts_rollouts,
                    n_episodes_per_iteration, eval, model, test):
    board = Game(player_turn=1)
    network = NeuralNet(board, num_channels, lr, dropout, epochs, batch_size)
    if model is not None:
        print("Loading {}".format(model))
        network.load(model)
    if test:
        while True:
            while board.turn_player() == -1:
                move = np.argmax(network(board, board.valid_moves())[0][0])
                print("Board {}, move {}".format(board.board(), move))
                board.move(move)
            print("{}".format(board.board()))
            import pdb
            pdb.set_trace()
    # set up the experiment
    experiment = Experiment(
        api_key=os.environ.get('ALPHAZERO_API_KEY'),
        project_name=os.environ.get('ALPHAZERO_PROJECT_NAME'),
        workspace=os.environ.get('ALPHAZERO_WORKSPACE'))
    experiment.log_multiple_params({
        'lr':
        lr,
        'dropout':
        dropout,
        'num_channels':
        num_channels,
        'epochs':
        epochs,
        'batch_size':
        batch_size,
        'replay_buffer_size':
        replay_buffer_size,
        'temp_decrese_moves':
        temp_decrese_moves,
        'mcts_rollouts':
        mcts_rollouts,
        'n_episodes_per_iteration':
        n_episodes_per_iteration
    })
    buf = ReplayBuffer(replay_buffer_size, batch_size)

    epoch = 0
    while True:
        epoch += 1
        print("Epoch {}, {}".format(epoch, time.clock()))
        for i in range(n_episodes_per_iteration):
            winner = execute_episode(network, buf, experiment)
            print("Finished episode {}, winner {}, time {}".format(
                i, winner, time.clock()))
        network.clone()
        loss, entropy = train_network(network, buf, experiment)

        print("Training loss: {}, entropy: {}".format(loss, entropy))
        won_counter = evaluate_network(network, board, 10)
        if won_counter >= 5:
            print("Performance improved, {} games won".format(won_counter))
            network.save()
        else:
            print("Performance decreased, {} games won".format(won_counter))
            network.revert_network()
示例#6
0
def main():
    nn = NeuralNet(64,20,2)
    nn.train(PATTERNS, iterations=1000)
    print nn.show(TESTS)