Lasagna adalah perpustakaan ringan untuk membangun dan melatih jaringan saraf di Theano. Fitur utamanya adalah:
Desainnya diatur oleh enam prinsip:
Singkatnya, Anda dapat menginstal versi Theano yang kompatibel dan versi pengembangan Lasagna terbaru melalui:
pip install -r https://raw.githubusercontent.com/Lasagne/Lasagne/master/requirements.txt
pip install https://github.com/Lasagne/Lasagne/archive/master.zip
Untuk detail lebih lanjut dan alternatifnya, silakan lihat petunjuk Instalasi.
Dokumentasi tersedia online: http://lasagne.readthedocs.org/
Untuk dukungan, silakan merujuk ke milis pengguna lasagna.
import lasagne
import theano
import theano . tensor as T
# create Theano variables for input and target minibatch
input_var = T . tensor4 ( 'X' )
target_var = T . ivector ( 'y' )
# create a small convolutional neural network
from lasagne . nonlinearities import leaky_rectify , softmax
network = lasagne . layers . InputLayer (( None , 3 , 32 , 32 ), input_var )
network = lasagne . layers . Conv2DLayer ( network , 64 , ( 3 , 3 ),
nonlinearity = leaky_rectify )
network = lasagne . layers . Conv2DLayer ( network , 32 , ( 3 , 3 ),
nonlinearity = leaky_rectify )
network = lasagne . layers . Pool2DLayer ( network , ( 3 , 3 ), stride = 2 , mode = 'max' )
network = lasagne . layers . DenseLayer ( lasagne . layers . dropout ( network , 0.5 ),
128 , nonlinearity = leaky_rectify ,
W = lasagne . init . Orthogonal ())
network = lasagne . layers . DenseLayer ( lasagne . layers . dropout ( network , 0.5 ),
10 , nonlinearity = softmax )
# create loss function
prediction = lasagne . layers . get_output ( network )
loss = lasagne . objectives . categorical_crossentropy ( prediction , target_var )
loss = loss . mean () + 1e-4 * lasagne . regularization . regularize_network_params (
network , lasagne . regularization . l2 )
# create parameter update expressions
params = lasagne . layers . get_all_params ( network , trainable = True )
updates = lasagne . updates . nesterov_momentum ( loss , params , learning_rate = 0.01 ,
momentum = 0.9 )
# compile training function that updates parameters and returns training loss
train_fn = theano . function ([ input_var , target_var ], loss , updates = updates )
# train network (assuming you've got some training data in numpy arrays)
for epoch in range ( 100 ):
loss = 0
for input_batch , target_batch in training_data :
loss += train_fn ( input_batch , target_batch )
print ( "Epoch %d: Loss %g" % ( epoch + 1 , loss / len ( training_data )))
# use trained network for predictions
test_prediction = lasagne . layers . get_output ( network , deterministic = True )
predict_fn = theano . function ([ input_var ], T . argmax ( test_prediction , axis = 1 ))
print ( "Predicted class for first test input: %r" % predict_fn ( test_data [ 0 ]))
Untuk contoh yang berfungsi penuh, lihat example/mnist.py, dan periksa Tutorial untuk penjelasan mendalam mengenai hal tersebut. Contoh lainnya, cuplikan kode, dan reproduksi makalah penelitian terbaru disimpan di repositori Resep Lasagna yang terpisah.
Jika Anda merasa Lasagna berguna untuk karya ilmiah Anda, mohon pertimbangkan untuk mengutipnya dalam publikasi yang dihasilkan. Kami menyediakan entri BibTeX siap pakai untuk mengutip Lasagna.
Lasagna sedang dalam proses, masukan diterima.
Silakan lihat instruksi Kontribusi untuk rincian tentang bagaimana Anda dapat berkontribusi!