My datasets are not actual images, so using methods with ImageDataGenerator or pre-trained networks might not apply in this case.

Data Structure: Each "image" is a 2048-long vector that has float values between 0 and 1.

an "image" plotted

Each "image" was associated with a label (multi-label classifcation) and the goal is to perform classification via Keras 2D CNN's.

What are common techniques for finding which parts of the "images" contribute most to classification via convolutional neural nets?

I already implemented the CNNs in keras and have already successfully trained on my images.

*No my data is not time series; however, my model works with either the keras Conv1D and Conv2D layers.

  • 1
    $\begingroup$ What is the premise to consider the data as image? The input vector is essentially a feature vector of size 2048. $\endgroup$
    – Karan
    Jul 17, 2017 at 20:29
  • 1
    $\begingroup$ I do not explicitly consider it as an image (hence using the quotes around image); however, I used a CNN as it has image-like qualities. The data has spatial features that determine its label. Regardless, is it possible to get any insight to what the CNN learns on? (whether it may be a CAM or something else) $\endgroup$ Jul 17, 2017 at 20:33
  • 1
    $\begingroup$ if your data has signal property then CNN would work. What you are looking for is Saliency Map, you need to do guided back prop to see what your CNN is focusing on. Check out raghakot/keras-vis Github repo. $\endgroup$
    – Karan
    Jul 17, 2017 at 20:51


You must log in to answer this question.

Browse other questions tagged .