I think serali answered this question well, though I wanted to give some extra reading for those interested.
There are many ways of deciphering what a neuron in a NN is doing. This lecture does a fantastic job at covering some of these methods and is an incredibly interesting watch. This covers more advanced methods of visualising what a model is doing.
In TensorFlow Playground, the horizontal line show where each class is separated for each neuron. What happens when you take any intermediate neuron to make the decision? You can see the answer by the line provided by that neuron. And this decision is a result of the weighted sum from the decisions of the previous neurons (up to activation).
Take the middle-...
There's similar boosting classes in XGBoost for regression. You can implement their built-in classes for your problem, rather than implementing from scratch. You can read more about it from their website.
You can also take a look at catboost, which implements a different approach.
There are a few things you can play with:
Try reducing the learning rate, or increasing decay.
Try using regularization(L1/L2 or dropout)
Try using momentum(your model may be stuck in a local minima)
Adjust other hyperparams(nodes, layers, batch size, etc.)
Unless you have some knowledge about the specific cause of high loss variance, the above steps in ...
RNN's stand for Recurrent Neural Networks which is, in fact, Deep Learning.
There has to be a loss since you're dealing with supervised learning and the typical loss metrics used are the same as you would see in feedforward networks (usually binary cross-entropy), the main difference being loss would be calculated between the true label at a particular time ...
For a simple multi layer perceptron, you can refer to here:
This is a great resource for kerad multi input label classification. Also, here is a few reminders for implementing such classification model.
One hot encoding
In the sample data you provided, it seems like you are using raw numbers as ...
Trying to address all the questions asked in the end in the same order
Most definitely possible.
I would say its best you approach this with segmentation to start with.
Just use a free GPU runtime notebook service such as Google Colab or Kaggle Kernels. But you would not directly be able to integrate with the device, you'd have to keep moving input and ...
Your code suggests a likely problem here: It looks like you are training a very deep neural network with sigmoidal activation functions at every layer.
The sigmoid has the property that its derivative (S*(1-S)) will be extremely small when the activation function's value is close to 0 or close to 1. In fact, the largest it can be is about 0.25.
First of all, you should add the argument workers = n in the fit generator call. n should be bigger than 1 to prefetch data. As your data processing requires the data be taken from a server or port, you should do pre fetching data as that would fetch the next data while GPU is processing.
If you call fit_generator with workers > 1 , use_multiprocessing=...
This is what I got from the manual :
The value returned by run() has the same shape as the fetches argument,
where the leaves are replaced by the corresponding values returned by
sess.run(fetches, feed_dict=None, options=None, run_metadata=None)
a = tf.constant([10, 20])
b = tf.constant([1.0, 2.0])
# 'fetches' can be ...