def new_network(cost_func, activation_func, struct, w_range, b_range): net = Network() net.cost_func = cost_func net.activation_func = activation_func net.struct = struct # stops for input_size, output_size in zip(struct, struct[1:-1]): layer = Layer.new_layer(activation_func, input_size, output_size, w_range, b_range) net.layers.append(layer) output_layer = OutputLayer.new_output_layer(cost_func, activation_func, struct[-2], struct[-1], w_range, b_range) net.layers.append(output_layer) return net