Standard link implementations / 標準的なLinkの実装

Chainer は多くの Link 実装を chainer.links パッケージで提供しています。

Note
幾つかのリンクは、当初から chainer.functions の名前空間に定義されています。また、 後方互換性を保つため、現在も名前空間に存在していますが、現在は chainer.links パッケージ経由で利用することを強く推奨しています。
*訳注:v1.5以降、パラメータを保持することが出来るオブジェクト(関数)は、Linkとされました。詳細はチュートリアルに記載されています。

Learnable connections

chainer.links.Bias

ブロードキャストされた要素と学習パラメータの和

chainer.links.Bilinear

テンソル積を行う双線形レイヤー

chainer.links.ChildSumTreeLSTM Child-Sum TreeLSTM ユニット
chainer.links.Convolution2D

Two-dimensional convolution layer.

2次元畳み込みレイヤー

chainer.links.ConvolutionND

N-dimensional convolution layer.

N次元畳み込みレイヤー

chainer.links.Deconvolution2D

Two dimensional deconvolution function.

二次元逆畳み込み関数

chainer.links.DeconvolutionND

N-dimensional deconvolution function.

N次元の逆畳み込み関数

chainer.links.DepthwiseConvolution2D

二次元の深さごとの畳み込みレイヤー

chainer.links.DilatedConvolution2D

二次元の拡張畳み込みレイヤー

chainer.links.EmbedID

ワンホット入力のための効果的な線形レイヤー

chainer.links.GRU

Stateful Gated Recurrent Unit function

(ステートフルGRU)

chainer.links.Highway

ハイウェイ・モジュール

chainer.links.Inception GoogLeNetのInceptionモジュール
chainer.links.InceptionBN

バッチ正規化を伴うGoogLeNet のInceptionモジュール

chainer.links.Linear

線形レイヤー。Fully Connected Layerともいう。最終レイヤー

chainer.links.LSTM 全結合 LSTMレイヤー
chainer.links.MLPConvolution2D

NiN2次元 MLP 畳み込みレイヤー

*NiN:ネットワーク・イン・ネットワーク

chainer.links.NaryTreeLSTM N項 TreeLSTM ユニット.
chainer.links.NStepBiGRU

シーケンスのための積層双方向GRU(Nステップ)

chainer.links.NStepBiLSTM シーケンスのための積層双方向LSTM
chainer.links.NStepBiRNNReLU シーケンスのための積層双方向 RNN (ReLU)
chainer.links.NStepBiRNNTanh シーケンスのための積層双方向RNN(tanh)
chainer.links.NStepGRU シーケンスのための積層一方向 GRU 
chainer.links.NStepLSTM シーケンスのための積層一方向LSTM 
chainer.links.NStepRNNReLU シーケンスのための積層一方向RNN(ReLU)
chainer.links.NStepRNNTanh シーケンスのための積層一方向RNN(tanh)
chainer.links.Scale ブロードキャストされた要素と学習パラメータの積
chainer.links.StatefulGRU ステートフルGRU
chainer.links.StatelessGRU ステートレスGRU
chainer.links.StatefulPeepholeLSTM ステートフル・ピープホール接続(全結合)LSTM レイヤー
chainer.links.StatelessLSTM

ステートレス LSTM レイヤー

活性化/損失/正規化関数

chainer.links.BatchNormalization 線形もしくは畳み込み関数のアウトプット上のバッチ正規化レイヤー[*元論文]
chainer.links.LayerNormalization 線形関数のアウトプット上のレイヤー正規化レイヤー 
chainer.links.BinaryHierarchicalSoftmax

二分木を利用した階層型ソフトマックスレイヤー

chainer.links.BlackOut BlackOut 損失レイヤー
chainer.links.CRF1d 線形連鎖条件付き確率場損失レイヤー 
chainer.links.SimplifiedDropconnect 単純化ドロップコネクト正則化による全結合レイヤー 
chainer.links.PReLU LinkのParametric ReLU (PReLU)関数
chainer.links.Maxout 全結合マックスアウトレイヤー
chainer.links.NegativeSampling 負の標本化損失関数

機械学習モデル

chainer.links.Classifier シンプルな分類モデル

事前学習済みモデル

事前学習済みモデルは主に、小さなデータ・セットで良いパフォーマンスを獲得するために利用されるか、セマンティックな特徴ベクトルの抽出に利用されます。 CaffeFunction はcaffemodelとしてリリースされている事前学習済みモデルを自動的にロードしますが、下記のLinkモデルは、自動的にcaffemodelを変換し、簡単にセマンティックな特徴ベクトルを抽出するためのインタフェースを提供します。

 

例えば、 VGG16Layers で特徴ベクトルを抽出します。これは、画像認識分野における共通の事前学習済みモデルで、下記の例のように、ユーザは数行のコードを書くだけでよいのです。

 



from chainer.links import VGG16Layers from PIL
import Image

model = VGG16Layers()
img = Image.open("path/to/image.jpg")
feature = model.extract([img], layers=["fc7"])["fc7"]

 

 fc7 は最終的な全結合層の前の層を示します。通常のLinksと異なり、これらのクラスは初期化の際に、事前学習済みモデルから、自動的に全てのパラメータをロードします。

VGG16Layers

chainer.links.VGG16Layers VGGチームから提供されている事前学習済みの 16層CNN モデル
chainer.links.model.vision.vgg.prepare 指定した画像をVGGモデル用にnumpy arrayに変換する。

GoogLeNet

chainer.links.GoogLeNet BVLCから提供されている事前学習済みGoogLeNet モデル
chainer.links.model.vision.googlenet.prepare 指定した画像をGoogLeNetモデル用にnumpy arrayに変換する

Residual Networks (ResNets)

chainer.links.model.vision.resnet.ResNetLayers MSRAから提供されている事前学習済みCNNモデル
chainer.links.ResNet50Layers MSRAから提供されている事前学習済みの50層CNN モデル
chainer.links.ResNet101Layers MSRAから提供されている事前学習済みの101層CNN モデル
chainer.links.ResNet152Layers MSRAから提供されている5事前学習済みの152層CNN モデル
chainer.links.model.vision.resnet.prepare 画像をResNets 用のnumpy array に変換する

他のフレームワークとの互換性

chainer.links.TheanoFunction Theano の関数ラッパー
chainer.links.caffe.CaffeFunction Caffeのモデルファイルに基づくCaffe エミュレータ