2015-11-20 15 views
6

Lazanya/nolearn kullanarak bir otomatik kodlayıcıyı eğittim. Ağ katmanlarının [500, 100, 100, 500] olduğunu varsayalım. Öyle gibi sinirsel net eğittiğim:Lazanya/nolearn autoencoder - gizli katman çıktısı nasıl alınır?

net.predict(X, layer=2) 

yüzden verilerim bastırılmış temsilini elde edersiniz:

net.fit(X, X) 

aşağıdaki gibi bir şey yapmak istiyorum. Dolayısıyla, ilk verilerimin bir şekli varsa [10000, 500], elde edilen veriler [10000, 100] olacaktır.

Aradım ama nasıl yapılacağını bulamadık. Lazanya/nolearn ile mümkün mü? http://lasagne.readthedocs.org/en/latest/user/layers.html#propagating-data-through-layers

İşte alakalı bölümlerdir: cevap belgelerinde burada gibi

cevap

2

görünüyor

Bir ağın çıkışını hesaplamak için, bunun yerine üzerinde lasagne.layers.get_output() çağırmalıdır. Bu, ağ grafiğini çaprazlayacaktır. Sizin için çıkış ifadesini hesaplamak istediğiniz katmanda bu işlevi çağırabilir

: Bu durumda

>>> y = lasagne.layers.get_output(l_out) 

, bir Theano ifade iade edilecektir girdi değişkenleri fonksiyonunda çıkışını temsil

Ayrıca Theano belirtebilirsiniz ... lasagne.layers.InputLayer örneği (veya örnekleri) ağına

içinde ilişkili ifadesi lasagne.layers.get_output() için ikinci argüman olarak girdi olarak kullanmak:

>>> x = T.matrix('x') 
>>> y = lasagne.layers.get_output(l_out, x) 
>>> f = theano.function([x], y) 

net Eğer net.get_all_layers() ile altta yatan tabaka nesnelere erişim elde edebilirsiniz gibi görünüyor tip nolearn.lasagne.NeuralNet taşımaktadır varsayarsak. Ben belgelerinde görmüyorum ama yerine net.predict(X, layer=2) ait

+0

Merhabalar. Ağı lazanya üstüne nolearn kullanarak eğittim. Yukarıdaki kodu kullanabileceğimi sanmıyorum. 'Net' nesnesi kodda kullanılmaz. Bir şey mi özledim? – Stergios

+0

@Stergios Üzgünüz, noller'in katmanları gizlediğini bilmiyordum. Cevabı güncelledim. Not Bu kodu test etmedim. – ovolve

0

hattı 592. üzerine here var, katmanınızı adlı verdiyseniz net.get_output(net.layers_[1], X) veya net.get_output('name_of_layer_2' , X) deneyin.

İlgili konular