Apabila bekerja dengan Rangkaian Neural Dalam (DNN), selalunya berguna untuk memeriksa pengaktifan lapisan individu. Ini boleh membantu anda memahami gelagat model dan mengenal pasti isu yang berpotensi. Keras, perpustakaan DNN yang popular untuk Python, menyediakan cara mudah untuk mencapai matlamat ini.
Model Keras dibina sebagai urutan lapisan, setiap satu menjalankan operasi tertentu pada input. Untuk mendapatkan semula output lapisan tertentu, anda boleh menggunakan sintaks berikut:
model.layers[index].output
di mana indeks ialah indeks lapisan yang anda mahu keluarkan keluaran. Contohnya, untuk mendapatkan output lapisan konvolusi kedua dalam coretan kod yang disediakan:
conv_output = model.layers[2].output
Untuk mengekstrak output daripada semua lapisan dalam model, anda boleh menggunakan pemahaman senarai:
outputs = [layer.output for layer in model.layers]
Untuk benar-benar menilai output lapisan, Keras menyediakan satu set fungsi yang dipanggil K.function. Fungsi ini mengambil sebagai input senarai tensor dan mengembalikan senarai output.
Untuk mencipta fungsi penilaian bagi setiap output lapisan, anda boleh melakukan perkara berikut:
from keras import backend as K functors = [K.function([inp, K.learning_phase()], [out]) for out in outputs]
di mana inp berada tensor input, K.learning_phase() ialah bendera untuk menunjukkan sama ada model dalam mod latihan atau inferens, dan keluar ialah output bagi lapisan.
Kini, anda boleh menilai output lapisan dengan menghantar data input kepada fungsi penilaian yang sepadan:
test = np.random.random(input_shape)[np.newaxis,...] layer_outs = [func([test, 1.]) for func in functors] print layer_outs
Ingat untuk menetapkan K. learning_phase() hingga 1 jika mana-mana lapisan dalam model anda termasuk keciciran atau penormalan kelompok untuk mensimulasikan latihan mod.
Pendekatan yang lebih cekap untuk menilai output lapisan ialah menggunakan satu fungsi yang mengembalikan senarai output untuk semua lapisan:
from keras import backend as K functor = K.function([inp, K.learning_phase()], outputs)
Ini mengurangkan pemindahan data dan overhed pengiraan yang dikaitkan dengan penilaian fungsi individu.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Pengaktifan daripada Lapisan Tertentu dalam Model Keras?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!