Search code examples
pythontensorflowmachine-learningkerasneural-network

Is it possible to pass in an array into a neural network perceptron?


I am trying to set up a neural network for identify Elliott Waves and I was wondering if it is possible to pass in an array of arrays into a perceptron? My plan is to pass in an array of size 4 ([Open, Close, High, Low]) into each perceptron. If so, how would the weighted average calculation work and how can I go about this using the Python Keras library? Thanks!


Solution

  • This is a pretty standard Fully Connected Neural Network to build. I assume that you have a classification problem:

    from keras.layers import Input, Dense
    from keras.models import Model
    
    # I assume that x is the array containing the training data
    # the shape of x should be (num_samples, 4)
    # The array containing the test data is named y and is 
    # one-hot encoded with a shape of (num_samples, num_classes)
    # num_samples is the number of samples in your training set
    # num_classes is the number of classes you have
    # e.g. is a binary classification problem num_classes=2
    
    # First, we'll define the architecture of the network
    inp = Input(shape=(4,)) # you have 4 features
    hidden = Dense(10, activation='sigmoid')(inp)  # 10 neurons in your hidden layer
    out = Dense(num_classes, activation='softmax')(hidden)  
    
    # Create the model
    model = Model(inputs=[inp], outputs=[out])
    
    # Compile the model and define the loss function and optimizer
    model.compile(loss='categorical_crossentropy', optimizer='adam', 
                  metrics=['accuracy'])
    # feel free to change these to suit your needs
    
    # Train the model
    model.fit(x, y, epochs=10, batch_size=512)
    # train the model for 10 epochs with a batch size of 512