GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

Lasagne

Lasagne – Theano ニューラルネットワークを構築して学習するための軽量ライブラリ

投稿日:

Theano http://lasagne.readthedocs.org/で ニューラルネットワークを構築して学習するための軽量ライブラリ

ラザニア

Lasagneは、Theanoのニューラルネットワークを構築し、訓練するための軽量ライブラリです。 主な機能は次のとおりです。

  • 畳み込みニューラルネットワーク(CNN)などのフィードフォワードネットワーク、長期短期記憶(LSTM)を含む反復ネットワーク、およびそれらの任意の組み合わせをサポートする
  • 補助分類器を含む複数の入力と複数の出力のアーキテクチャを可能にする
  • ネステロフ運動量、RMSprop、ADAMを含む多くの最適化手法
  • 自由に定義可能なコスト関数であり、Theanoの象徴的な微分によって勾配を導出する必要はありません
  • Theanoの表現コンパイラによるCPUとGPUの透過的なサポート

そのデザインは6つの原則によって支配されます

  • シンプルさ:使いやすく、理解しやすく、拡張しやすく、研究での使用を容易にする
  • 透明性:Theanoを抽象化の背後に隠さず、Theano式またはPython / numpyデータ型を直接処理して返します。
  • モジュール性:すべてのパーツ(レイヤー、規則正子、オプティマイザなど)をラザニアとは別に使用できるようにする
  • 実用主義:一般的なユースケースを簡単にし、珍しいケースを過大評価しない
  • 拘束:ユーザーが使用しない機能を妨げないようにする
  • 焦点:「一つのことをして、それをうまくやる」

インストール

要するに、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]))

完全に機能的な例については、 examples / mnist.pyを参照し、同じことについての詳細な説明についてチュートリアルをチェックしてください。 最新の研究論文のサンプル、コードスニペット、複製物は別のLasagne Recipesリポジトリに保存されています。

引用

Lasagneがあなたの科学的研究に有益であることが分かった場合は、その結果の出版物に引用してください。 我々は、 Lasagneを引用してすぐに使用できるBibTeXエントリーを提供します。

開発

ラザニアは進行中の仕事です、入力は歓迎です。

寄付方法の詳細については、 寄付の手順をご覧ください!







-Lasagne
-, , ,

執筆者:

関連記事

関連記事はありませんでした