Closed FlyGinger closed 1 year ago
By the way, dataset is generated by the following python code.
from keras.datasets import cifar10
(input_train, output_train), (input_test, output_test) = cifar10.load_data()
input_train = np.expand_dims(input_train, -1)
# output_train = to_categorical(output_train, 10)
input_test = np.expand_dims(input_test, -1)
output_test = to_categorical(output_test, 10)
np.savez_compressed('x_test', input_test)
np.savez_compressed('y_test', output_test)
np.savez_compressed('x_norm', input_train[::10])
And "image_data_format": "channels_last"
in Keras.json
.
I am afraid that I don't know whether these matter in this problem.
It seems the last pooling layer has only size 2x2 without padding, but you apply a 3x3 kernel on it. Hence the "negative dimension size" error. It is caused by the Resize layer, which is currently not implemented in the toolbox (notice the line "Skipping layer Resizing"). You can either add this layer type to the toolbox, or resize the dataset before feeding it into the network.
By the way, I notice that you are using BatchNormalization layers after an activation function. That is not possible in a converted SNN (see here).
Lastly, unless you have some reason not to, I'd recommend training the ANN with average pooling directly if you already know that you are going to use them in the SNN.
I am training a AlexNet on CIFAR10 and converting it to SNN.
Here is the code for AlexNet training.
The AlexNet can be trained correctly, so I want to convert it to SNN. Here is the config of snntoolbox.
Then I got an error.
Why it occur? :cry: