Saya mencoba memprediksi satu gambar. Tetapi model saya mengembalikan array prediksi dengan bentuk (1,1,1,2048) ketika seharusnya (1,10). Tahu apa yang saya lakukan salah? Bentuk input x saya benar di (1,...

1
mathlete 5 April 2021, 23:44

3 jawaban

Jawaban Terbaik

Anda memuat model keras Anda dengan parameter

include_top=False

Yang memotong lapisan proyeksi yang terhubung penuh yang bertanggung jawab untuk memproyeksikan keluaran model ke jumlah kelas yang Anda harapkan. Ubah parameter menjadi Benar.

1
tnte 5 April 2021, 20:47

Jaringan klasifikasi citra biasanya bekerja dalam 2 langkah pemrosesan. Yang pertama adalah ekstraksi fitur, kami menyebutnya "dasar", dan terdiri dari tumpukan lapisan untuk menemukan dan memperkuat pola pada gambar (2DConv, Relu dan MaxPool). Yang kedua adalah "kepala" dan digunakan untuk mengklasifikasikan fitur yang diekstraksi dari langkah sebelumnya. Kode Anda mendapatkan output mentah dari "basis", tanpa klasifikasi, dan seperti yang dinyatakan oleh orang-orang baik lainnya, solusinya adalah menambahkan "kepala" khusus atau mengubah parameter include_top menjadi True.

0
Chaos Misit 5 April 2021, 22:19

Itu karena Anda menonaktifkan top dengan include top, yang menghilangkan lapisan klasifikasi akhir. Anda perlu menambahkan lapisan Anda sendiri dengan 10 kelas atau menghapus parameter include top dan melatih ulang jaringan dengan input yang diinginkan.

1
Niteya Shah 5 April 2021, 20:48