Latest update

# An Artificial Neuron Network (ANN) with an arbitrary number of inputs and outputs

2017-07-17 11:40:45

I would like to use ANNs for my problem, but the issue is my inputs and outputs node numbers are not fixed.

I did some google search before asking my question and found that the RNN may help me with my problem. But, all examples which I've found are somehow have defined number of input and output nodes.

So, I'm looking for a strategy, how to make it real or at least some examples, preferable in Keras or PyTorch.

I have two inputs lists, where the length of the first one is fixed and equals two, f.e.:

in_1 = [2,2]

but the length of the second list is flexible, the length can be from three to inf, f.e.:

in_2 = [1,1,2,2]

or

in_2 = [1,1,1,2,2,2,3,3,3]

Also, input lists depend on each other. The first list shows the dimension of the output list. So if in_1 = [2,2], means the output must have a possibility to be reshape to [2,2] form.

Currently, I'm thinking to combine two input list into one:

in = in_1 + in_2 = [2, 2, 1, 1, 2,

• The answer may depend on the significance of the length of the input vector or how it originates.

However, the simplest solution is usually to know the largest size input and use that as number of vectors. If the given input has lesser length, you can do the padding with zeros or appropriate symbols. So instead of having a vector [1, 2, 3] and [1, 2, 2, 3] you can have vectors [1, 2, 3, 0] and [1, 2, 2, 3].

The same can apply for output. If output expected is [1, 2, 1] and [1, 3, 4, 1] you can treat the first output as [1, 2, 1, 0]

Isn't this just a hack?

Typically, Neural networks does function approximation. Ideally, it represents vectors (matrices) as input and vectors (matrices) as output. This is why it is always desirable that size of your input vector be fixed.

2017-07-17 12:27:18