Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengekstrak Output dari Setiap Lapisan dalam Model Keras?
Keras: Cara Mendapatkan Keluaran Dari Setiap Lapisan
Pengenalan
Di Keras, mencipta model rangkaian saraf adalah mudah. Walau bagaimanapun, mengekstrak keluaran setiap lapisan boleh menjadi sedikit lebih mencabar. Artikel ini bertujuan untuk menyediakan penyelesaian menyeluruh kepada isu ini, membimbing anda melalui proses mendapatkan output lapisan dengan berkesan.
Kaedah
Untuk mendapatkan semula output lapisan tertentu , hanya aksesnya melalui atribut model.layers[index].output, dengan indeks mewakili kedudukan lapisan yang dikehendaki dalam model. Sebagai contoh, untuk mendapatkan output lapisan pertama:
first_layer_output = model.layers[0].output
Untuk mendapatkan output daripada semua lapisan secara serentak, gunakan kod berikut:
from keras import backend as K input_tensor = model.input # Input placeholder layer_outputs = [layer.output for layer in model.layers] # List of layer outputs evaluation_functions = [K.function([input_tensor, K.learning_phase()], [out]) for out in layer_outputs] # Functions to evaluate layer outputs # Testing test_input = np.random.random(model.input_shape)[np.newaxis,...] # Sample input layer_outputs = [func([test_input, 1.]) for func in evaluation_functions] # Evaluate layer outputs for test input
Pengoptimuman
Untuk kecekapan yang lebih baik, pertimbangkan untuk menggunakan satu fungsi untuk menilai semua lapisan output:
from keras import backend as K input_tensor = model.input # Input placeholder layer_outputs = [layer.output for layer in model.layers] # List of layer outputs evaluation_function = K.function([input_tensor, K.learning_phase()], layer_outputs) # Function to evaluate all layer outputs # Testing test_input = np.random.random(model.input_shape)[np.newaxis,...] # Sample input layer_outputs = evaluation_function([test_input, 1.]) # Evaluate all layer outputs for test input
Nota: Pastikan tetapan parameter K.learning_phase() yang betul. Nilai 1 mensimulasikan mod latihan (cth., untuk lapisan seperti Tercicir), manakala 0 mewakili mod ujian.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Output dari Setiap Lapisan dalam Model Keras?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!