Я пытаюсь обучить простую CNN для классификации TC , У меня есть только данные 3K, поэтому я пытаюсь построить простую сеть и использовал способы преодоления перегрузки. Я использую dropout, kernal_regularizer и BatchNormalization, но результат еще хуже, в чем проблема? Эта модель все еще большая, или я использую способы по ошибке. Кто-нибудь может показать мне правильный путь? потеря и val_loss точность и val_accuracy
kl2=0.1
bl2=0.1
model.add(layers.Conv3D(32,(3,7,7),(1,3,3),data_format='channels_last',kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2),input_shape=(8,226,226,3)))
model.add(layers.BatchNormalization())
model.add(Activation('relu'))
model.add(layers.Conv3D(64,(3,5,5),(1,3,3),kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2)))
model.add(layers.BatchNormalization())
model.add(Activation('relu'))
model.add(layers.Conv3D(128,(2,3,3),(2,3,3),kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2)))
model.add(layers.BatchNormalization())
model.add(Activation('relu'))
model.add(layers.MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(512,kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2)))
model.add(layers.BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(128,kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2)))
model.add(layers.BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(3,kernel_regularizer=l2(kl2),bias_regularizer=l2(bl2)))
model.add(layers.BatchNormalization())
model.add(Activation('softmax'))