Lasagne
1.0.0
Lasagne는 Theano에서 신경망을 구축하고 훈련하기 위한 경량 라이브러리입니다. 주요 기능은 다음과 같습니다.
디자인은 다음과 같은 6가지 원칙에 따라 결정됩니다.
즉, 다음을 통해 알려진 호환 가능한 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/
지원을 받으려면 lasagne-users 메일링 리스트를 참조하세요.
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 저장소에 보관됩니다.
Lasagne가 귀하의 과학 작업에 유용하다고 생각되면 결과 출판물에 이를 인용하는 것을 고려해 보십시오. 우리는 Lasagne 인용을 위해 바로 사용할 수 있는 BibTeX 항목을 제공합니다.
라자냐는 진행 중인 작업이므로 의견을 보내주시면 됩니다.
기여 방법에 대한 자세한 내용은 기여 지침을 참조하세요!