Akurasi set validasi dibekukan pada 0,0909. Apakah ini kurang pas? Cara mengatasi masalah untuk mendapatkan akurasi model yang lebih baik. Model tersebut kemudian diubah menjadi tflite untuk digunakan di android.

Model saya:

model = Sequential([
Conv2D(filters=32, kernel_size=(3, 3), activation='relu', padding='same', input_shape=(224, 224, 3)),
MaxPool2D(pool_size=(2, 2), strides=2),
Conv2D(filters=64, kernel_size=(3, 3), activation='relu', padding='same'),
MaxPool2D(pool_size=(2, 2), strides=2),
Conv2D(filters=128, kernel_size=(3, 3), activation='relu', padding='same'),
MaxPool2D(pool_size=(2, 2), strides=2),
Flatten(),
Dense(units=train_batches.num_classes, activation='softmax')

])

model.summary()

Lapisan (tipe) Output Bentuk Param #

Konv2d (Konv2D) (Tidak ada, 224, 224, 32) 896


Max_pooling2d (MaxPooling2D) (Tidak ada, 112, 112, 32) 0


Conv2d_1 (Conv2D) (Tidak ada, 112, 112, 64) 18496


Max_pooling2d_1 (MaxPooling2 (Tidak Ada, 56, 56, 64) 0


Conv2d_2 (Conv2D) (Tidak ada, 56, 56, 128) 73856


Max_pooling2d_2 (MaxPooling2 (Tidak Ada, 28, 28, 128) 0


Meratakan (Meratakan) (Tidak Ada, 100352) 0


Padat (Padat) (Tidak ada, 11) 1103883

Total parameter: 1.197.131 Param yang dapat dilatih: 1.197.131 Param yang tidak dapat dilatih: 0


model.compile(optimizer=Adam(learning_rate=0.01), loss=categorical_crossentropy, metrics=['accuracy'])

model.fit(x=train_batches, validation_data=valid_batches, epochs=10, verbose=2)

Epoch 1/10
53/53 - 31s - loss: 273.5211 - accuracy: 0.0777 - val_loss: 2.3989 - val_accuracy: 0.0909
Epoch 2/10
53/53 - 27s - loss: 2.4001 - accuracy: 0.0928 - val_loss: 2.3986 - val_accuracy: 0.0909
Epoch 3/10
53/53 - 28s - loss: 2.4004 - accuracy: 0.0795 - val_loss: 2.3986 - val_accuracy: 0.0909
Epoch 4/10
53/53 - 29s - loss: 2.4006 - accuracy: 0.0739 - val_loss: 2.3989 - val_accuracy: 0.0909
Epoch 5/10
53/53 - 29s - loss: 2.3999 - accuracy: 0.0720 - val_loss: 2.3986 - val_accuracy: 0.0909
Epoch 6/10
53/53 - 28s - loss: 2.4004 - accuracy: 0.0720 - val_loss: 2.3986 - val_accuracy: 0.0909
Epoch 7/10
53/53 - 28s - loss: 2.4004 - accuracy: 0.0682 - val_loss: 2.3993 - val_accuracy: 0.0909
Epoch 8/10
53/53 - 29s - loss: 2.3995 - accuracy: 0.0871 - val_loss: 2.3986 - val_accuracy: 0.0909  
Epoch 9/10
53/53 - 29s - loss: 2.4008 - accuracy: 0.0852 - val_loss: 2.3988 - val_accuracy: 0.0909
Epoch 10/10
53/53 - 28s - loss: 2.4004 - accuracy: 0.0833 - val_loss: 2.3991 - val_accuracy: 0.0909
0
NACHIKETA CHAKRABORTY 5 April 2021, 09:28

1 menjawab

Jawaban Terbaik

Coba dengan kecepatan belajar yang lebih rendah. Periksa juga Dataset Anda. Maksud saya kumpulan data yang Anda gunakan jika itu kecil, gunakan augmentasi gambar untuk meningkatkannya sehingga model dapat mempelajarinya dengan lebih baik. Gunakan normalisasi batch serta teknik regularisasi dan penjadwal LR saat penurunan gradien Anda jatuh ke Minima lokal.

0
Dipesh Gupta 6 April 2021, 08:06