Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengekstrak Pengaktifan daripada Lapisan Tertentu dalam Model Keras?

Bagaimana untuk Mengekstrak Pengaktifan daripada Lapisan Tertentu dalam Model Keras?

Patricia Arquette
Lepaskan: 2024-11-30 02:49:14
asal
764 orang telah melayarinya

How to Extract Activations from Specific Layers in a Keras Model?

Cara Mendapatkan Output Setiap Lapisan dalam Keras

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.

Menggunakan Antara Muka Lapisan Model

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
Salin selepas log masuk

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
Salin selepas log masuk

Mendapatkan Output daripada Semua Lapisan

Untuk mengekstrak output daripada semua lapisan dalam model, anda boleh menggunakan pemahaman senarai:

outputs = [layer.output for layer in model.layers]
Salin selepas log masuk

Mencipta Penilaian Fungsi

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]
Salin selepas log masuk

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.

Menilai Output 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
Salin selepas log masuk

Ingat untuk menetapkan K. learning_phase() hingga 1 jika mana-mana lapisan dalam model anda termasuk keciciran atau penormalan kelompok untuk mensimulasikan latihan mod.

Mengoptimumkan Proses

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan