function net = MakeNNet(alphs, hidden_node_ct, sweeps)

% loaded alphabet files
s = size(alphs);
s2 = size(alphs{1}{1});

% Pixel dimensions of input
x_size = s2(2);
y_size = s2(1);

% Number of classifications
classf_ct = 26;

% Initial learning rate (0 to 1)
learning_rate_init = 0.5;

% Create Neural Network.
net = NeuralNet(x_size,y_size,learning_rate_init, hidden_node_ct, classf_ct);

% loading bar
barct = 50;

for sets=1:sweeps
    % train on all alphabets supplied
    for file=1:s(2)
        % Get this from loaded alphabets, new one each time.
        % Loads alphabet letters into cell matrix alp.
        alp = alphs{file};
        for let = 1:26
            input = alp{let};
            % Set this to be whatever the correct output should be for the above
            % input. -1 = false, 1 = true.
            classification_correct = zeros(1,26);
            classification_correct(let) = 1;

            % Teach the network with this input example.
            teach_network(net, input, classification_correct);
        end

    end
    % adjust learning rate
    set_learning_rate(net, learning_rate_init/sqrt(sets));
    
    % print loading bar
    k = floor(barct*sets/sweeps) - floor(barct*(sets-1)/sweeps);
    for i=1:k
        fprintf('|');
    end
end

fprintf('\n');



