Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh mengakses dan menilai output lapisan dalam model Keras?

Bagaimanakah saya boleh mengakses dan menilai output lapisan dalam model Keras?

DDD
Lepaskan: 2024-11-17 16:48:02
asal
414 orang telah melayarinya

How can I access and evaluate layer outputs in a Keras model?

Mendapatkan Output Lapisan dalam Keras

Apabila membina model rangkaian saraf menggunakan rangka kerja seperti Keras, ia boleh memberi manfaat untuk mengakses output lapisan individu untuk tujuan analisis atau penyahpepijatan. Dalam artikel ini, kami akan menunjukkan cara untuk mendapatkan semula output setiap lapisan dalam model Keras.

Pertimbangkan contoh kod berikut, di mana model klasifikasi binari dengan seni bina Convolutional Neural Network (CNN) dicipta:

from keras.models import Sequential
from keras.layers import Convolution2D, Activation, MaxPooling2D, Flatten, Dense, Dropout

model = Sequential()
# ... (Model architecture as provided in the question)
Salin selepas log masuk

Mengakses Output Lapisan

Untuk mendapatkan output a lapisan tertentu dalam model, anda boleh menggunakan atribut model.layers[index].output. Di sini, indeks mewakili kedudukan lapisan dalam seni bina model.

Sebagai contoh, untuk mengakses output lapisan konvolusi pertama:

output = model.layers[0].output
Salin selepas log masuk

Mendapatkan Output Semua Lapisan

Untuk mendapatkan semula output semua lapisan dalam model, anda boleh menggunakan senarai pemahaman:

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

Menilai Output Lapisan

Untuk menilai output yang diperoleh daripada langkah sebelumnya, anda boleh memanfaatkan kaedah K.function yang disediakan oleh backend Keras:

from keras import backend as K

inputs = model.input
functor = K.function([inputs, K.learning_phase()], outputs)
Salin selepas log masuk

Di sini, input mewakili lapisan input model dan K.learning_phase() diperlukan untuk lapisan yang mempamerkan tingkah laku berbeza semasa latihan dan penilaian (cth., Dropout).

Akhir sekali, untuk menilai output lapisan untuk input yang diberikan:

test_input = np.random.random(input_shape)[np.newaxis,...]
layer_outputs = functor([test_input, 1.])
Salin selepas log masuk

Pengoptimuman untuk Penilaian

Untuk mengoptimumkan proses penilaian, bukannya mencipta pelbagai fungsi untuk setiap output lapisan, anda boleh mencipta satu fungsi yang mengembalikan semua output dalam senarai:

functor = K.function([inputs, K.learning_phase()], outputs)
Salin selepas log masuk

Nota Tambahan

  • Lapisan tercicir harus dikecualikan semasa penilaian dengan menetapkan K.learning_phase() kepada 0.
  • Pembolehubah input boleh mewakili berbilang input tensor jika model anda mempunyai berbilang input.
  • Pembolehubah layer_outputs akan mengandungi senarai tatasusunan NumPy yang sepadan dengan output setiap lapisan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses dan menilai output lapisan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan