After taking a look at your code, it seems that you've not employed any kind of regularization. You may want to use dropout. Moreover, in convolutional autoencoders, in the decoder part, there is a well-known artifact called checkerboard. I don't know how this can be a problem for your task since you're using one-dimensional convolution in the decoder. By ...
As rightly pointed out by you the rescale=1./255 will convert the pixels in range [0,255] to range [0,1].
This process is also called Normalizing the input. Scaling every images to the same range [0,1] will make images contributes more evenly to the total loss.
Without scaling, the high pixel range images will have a large say to determine how to update ...
There are basically two parts.
Why there is a comma in the [3,]? In this case you can skip it and just use . You can encounter it in the tutorials, because you can pass the tuple as shape as well - (3,) and if you skip the comma in the tuple, then it will be just number, not tuple. So, it's just more of a python, not a keras itself. Try this in terminal
The length of TIME_STEPS in one sequence is more of a Hyperparameter. That you should try to optimize.
Does this method split the data or is he just creating a 3D variable in the correct
format for the Convolutional Autoencoder?
It simply create dataset for a 1-dimsnional convolutional network.Something like this,
Each row is an instance. ...
You are actually plotting the train set with X_train which has 60k samples.
Try accessing X_test and it will indeed raise an IndexError.
keras.datasets.mnist.load_data() returns numpy.array objects, so you can check the shape of the arrays
>>> print("Train:", X_train.shape)
Train: (60000, 28, 28)
take a look at the paper "Generating Sentences from a Continuous Space" by Bowman. In Section 3.1 it is explained why LSTM_VAE tend to this behaviour:
"This problematic tendency in learning is compounded by the lstm decoder’s sensitivity to subtle variation in the hidden states, such as that introduced by the posterior sampling process. This
This is overfitting, and it suggests that your images in each class are very similar to images across other classes.
Since your images across classes seem very similar, 800 per class is actually not a lot of data to train on. It's likely your model is struggling to discriminate the dev data into the correct classes based on what little it can learn., and ...
If tf dataset is used you cannot use the class_weights parameter. Insted return the weight from a parse_function in your pipeline
weight_arr = [1.5, 0.5] #define your custom weights
#create a lookup table
key_tensor = tf.constant(list(range(0, len(weight_arr))), dtype=tf.int64)
val_tensor = tf.constant(weight_arr)
init = tf.lookup....