Skip to main content
JDELS
Associate
February 19, 2019
Question

Why validation (PC or target) is failing on my model ?

  • February 19, 2019
  • 2 replies
  • 1221 views

Hello,

my model uses 2 SeparableConv2D, I am getting high error values when running validation :

 Ref layer 0 matched with C layer 1, error: 0.63482046

 Ref layer 1 matched with C layer 3, error: 0.58572435

 Ref layer 4 matched with C layer 5, error: 0.474215

 Ref layer 5 matched with C layer 6, error: 1.0003685

I made sure my model is using float32 so there should not be any precision errors.

I does not depend on precision level

I get the same error level with data coming from my actual dataset

Could it be a problem in C implementation of those SeparableConv2D layers ?

Could it be possible to get the code of the .a library for debugging purpose ?

thanks by advance

Julien

    This topic has been closed for replies.

    2 replies

    ST Employee
    February 20, 2019

    ​Hello,

    According your description and an issue currently identified with a similar model, there is effectively a problem in the current version of the code generator (X-CUBE-AI-3.3.0). Normaly if no compression is applied, reported errors should be closed to 10e-7.

    Issue is now fixed and should be delivered in the next release X-CUBE-AI-3.4.0 scheduled in a couple of week.

    Do you think that is possible to have our model to verify the fixes?

    Jean-michel

    JDELS
    JDELSAuthor
    Associate
    February 20, 2019

    Hello,

    thanks for the answer.

    no problem for sharing my model,

    those are just some tests I am doing to get an idea of what is possible.

    Here it is:

    K.set_floatx('float32')

    model = Sequential()

    model.add(

       SeparableConv2D(filters = 32, kernel_size=(3, 3),

               padding = 'valid', strides = (2,2), activation='relu',

                       input_shape = input_shape )

    )

    model.add(

       SeparableConv2D(filters = 32, kernel_size=(3, 3),

               padding = 'same', strides = (1,1), activation='relu')

    )

    model.add(MaxPooling2D(pool_size=(2,2)))

    model.add(Flatten())

    model.add(Dense(units=128, activation='relu'))