Lasagne — это легкая библиотека для создания и обучения нейронных сетей в Theano. Его основные особенности:
Его конструкция регулируется шестью принципами:
Короче говоря, вы можете установить известную совместимую версию Theano и последнюю версию разработки Lasagne через:
pip install -r https://raw.githubusercontent.com/Lasagne/Lasagne/master/requirements.txt
pip install https://github.com/Lasagne/Lasagne/archive/master.zip
Более подробную информацию и альтернативы можно найти в инструкции по установке.
Документация доступна в Интернете: http://lasagne.readthedocs.org/.
Для получения поддержки обратитесь к списку рассылки пользователей лазаньи.
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 ]))
Полнофункциональный пример см. в файле example/mnist.py и ознакомьтесь с учебным пособием для его подробных объяснений. Дополнительные примеры, фрагменты кода и репродукции последних исследовательских работ хранятся в отдельном репозитории Lasagne Recipes.
Если вы считаете, что лазанья полезна для вашей научной работы, пожалуйста, рассмотрите возможность цитирования ее в соответствующих публикациях. Мы предоставляем готовую к использованию запись BibTeX для цитирования лазаньи.
Лазанья находится в стадии разработки, вклад приветствуется.
Подробную информацию о том, как вы можете внести свой вклад, смотрите в инструкциях по вкладу!