0
$\begingroup$

I am currently trying to build a 3D-CNN model to predict video quality.

When I trained the model with a small dataset (300 videos) it predicts different values, but when I use a huge dataset for training it predicts the some values. Can you help me please?

The model:

def get_model():
    # Define model
    model = Sequential()
    model.add(Conv3D(32, kernel_size=(3, 3, 3), input_shape=(
        16,224,224,3), activation='relu'))
    model.add(MaxPooling3D(pool_size=(1, 2, 2)))
    model.add(Conv3D(64, kernel_size=(3, 3, 3), activation='relu'))
    model.add(MaxPooling3D(pool_size=(1, 2, 2)))
    model.add(Conv3D(128, kernel_size=(3, 3, 3), activation='relu'))
    model.add(Conv3D(128, kernel_size=(3, 3, 3), activation='relu'))
    model.add(MaxPooling3D(pool_size=(1, 2, 2)))
    model.add(Conv3D(256, kernel_size=(2, 2, 2), activation='relu'))
    model.add(Conv3D(256, kernel_size=(2, 2, 2), activation='relu'))
    model.add(MaxPooling3D(pool_size=(1, 2, 2)))
        
    model.add(Flatten())
    model.add(Dense(1024, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(512, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(1, activation='linear'))
    model.compile(loss='mean_squared_error',
                  optimizer=Adam(), metrics=['mse'])
    model.summary()
    #plot_model(model, show_shapes=True,
    #           to_file='model.png')
    return model
$\endgroup$
2
  • $\begingroup$ Some examples of your input data and outputs in both cases might be helpful $\endgroup$ – WBM Apr 12 at 13:20
  • $\begingroup$ Input : 16 frames of a video divided by 255. Output : score between 0-1. But the model always predict 0.6250 $\endgroup$ – Nagato Apr 13 at 11:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.