Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh mengakses dan menilai output lapisan dalam model Keras?
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)
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
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]
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)
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.])
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)
Nota Tambahan
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!