Skip to content

Commit

Permalink
Modify RNN (#55)
Browse files Browse the repository at this point in the history
* Fix spelling inconsistency

- "リカレントレイヤー" and "RNNs" to "Recurrentレイヤー"

* Use natural japanese
  • Loading branch information
amaotone authored and fchollet committed Nov 24, 2016
1 parent 88489cb commit 710dbe6
Showing 1 changed file with 23 additions and 23 deletions.
46 changes: 23 additions & 23 deletions sources/layers/recurrent.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
keras.layers.recurrent.Recurrent(weights=None, return_sequences=False, go_backwards=False, stateful=False, unroll=False, consume_less='cpu', input_dim=None, input_length=None)
```

リカレントレイヤーに対する抽象的な基底クラス
モデルの中では利用しないでください -- これは妥当なレイヤーではありません
代わりにその子クラス`LSTM`, `GRU`, `SimpleRNN`を利用してください.
Recurrentレイヤーに対する抽象的な基底クラス
モデルの中では利用しないでください -- これは直接利用可能なレイヤーではありません
代わりに子クラスである`LSTM`, `GRU`, `SimpleRNN`を利用してください.

すべてのリカレントレイヤー (`LSTM`, `GRU`, `SimpleRNN`) もこのクラスの仕様に従い,下に列挙したキーワードの引数を許容します
すべてのRecurrentレイヤー (`LSTM`, `GRU`, `SimpleRNN`) はこのクラスの仕様に従い,下に列挙したキーワード引数が使用可能です

____

Expand All @@ -21,18 +21,18 @@ model.add(LSTM(32, input_shape=(10, 64)))
# ここで model.output_shape == (None, 32)
# 注: `None`はバッチ次元.note: `None` is the batch dimension.

# 次は同じことです:
# 以下は同様の意味です:
model = Sequential()
model.add(LSTM(32, input_dim=64, input_length=10))

# 続くレイヤーに対して,入力サイズを特定する必要はありません:
# 2層目以降のレイヤーに対しては,入力サイズを指定する必要はありません:
model.add(LSTM(16))
```

__引数__

- __weights__: 重みの初期値として設定するnumpy arrayのリスト.
リストは次のshapeを持つ三つの要素からなります:
リストは次のshapeを持つ3つの要素からなります:
`[(input_dim, output_dim), (output_dim, output_dim), (output_dim,)]`.
- __return_sequences__: 論理型.出力シーケンスの最後の出力を返すか,
完全なシーケンスを返すか.
Expand All @@ -45,17 +45,17 @@ __引数__
常に展開されるので,この引数は何もしません.
展開はよりメモリ集中傾向になりますが,RNNをスピードアップできます.
展開は短いシーケンスにのみ適しています.
- __consume_less__: "cpu", "mem", "gpu"の一つ (LSTM/GRUのみ)
"cpu"に設定すれば,RNNはより僅かでより大きい行列積を用いた実装を利用するので,
CPUではより速く動作しますがより多くのメモリを消費します
"mem"に設定すれば,RNNはより多くの行列積を利用しますが,より小さい行列積を利用します
よってより遅く動作する一方(実際にはGPUではより高速になるかもしれない)
より少ないメモリを消費します
- __consume_less__: "cpu", "mem", "gpu"LSTM/GRUのみ)のいずれか
"cpu"に設定すれば,RNNは少ない代わりに大きい行列積を用いた実装を利用します.
CPUでは速く動作する一方,多くのメモリを消費します
"mem"に設定すれば,RNNは多い代わりに小さい行列積を用いた実装を利用します
CPUでは遅く動作する一方(GPUではむしろ高速になるかもしれません),
メモリの消費は少なくなります
"gpu"に設定すれば(LSTM/GRUのみ),RNNは入力ゲート,
忘却ゲート,出力ゲートを一つの行列に結び付け
GPU上でもっと計算時間の効率の良い並列化を可能にします
忘却ゲート,出力ゲートを1つの行列に結び付け
GPUにおいてより計算時間の効率の良い並列化を可能にします
注意: RNNのドロップアウトはすべてのゲートに対して共有化されている必要があり,
結果として僅かに正則化の効果を低減することになります
結果として僅かに正則化の効果が低減します

- __input_dim__: 入力の次元(整数)
この引数(または代わりのキーワード引数`input_shape`)は
Expand All @@ -64,7 +64,7 @@ __引数__
- __input_length__: 入力シーケンスの長さ.
この引数は`Flatten`ひいては`Dense`なレイヤーを上流に結びつけるときに必要となります.
(これなしでは,密な出力のshapeを計算できません).
注意: リカレントレイヤーがあなたのモデルの最初のレイヤーでなければ
注意: Recurrentレイヤーがあなたのモデルの最初のレイヤーでなければ
最初のレイヤーのレベルで入力の長さを指定する必要があります
(例えば`input_shape`引数を通じて).

Expand All @@ -86,12 +86,12 @@ __マスキング__
__パフォーマンスの注意点__

RNNのパフォーマンスはTensorFlowよりもTheanoのほうが遥かに優れています.
加えて,TensorFlowを使う際は,`unroll=True`がよりパフォーマンスにとっては好ましいです
加えて,TensorFlowを使う際は,`unroll=True`がよりパフォーマンスが良いです

__RNNsで状態管理性を利用するときの注意__
__Recurrentレイヤーで状態管理を利用するときの注意点__

RNNレイヤーが状態管理されるように設定できます
これは一つのバッチのサンプルに対して計算される状態が
Recurrentレイヤーが状態管理されるように設定できます
これは1つのバッチのサンプルに対して計算される状態が
次のバッチのサンプルに対する初期状態として再利用されることを意味します.
これは異なる連続したバッチのサンプル間の1対1対応を仮定します.

Expand All @@ -110,7 +110,7 @@ RNNレイヤーが状態管理されるように設定できます.

__TensorFlowでドロップアウトを利用するときの注意__

TensorFlowバックエンドを利用するとき,状態管理RNNsについての注意に従って
TensorFlowバックエンドを利用するとき,状態管理されたRecurrentレイヤーについての注意に従って
あなたのモデルに対する固定されたバッチサイズを指定してください.

----
Expand All @@ -122,7 +122,7 @@ TensorFlowバックエンドを利用するとき,状態管理RNNsについて
keras.layers.recurrent.SimpleRNN(output_dim, init='glorot_uniform', inner_init='orthogonal', activation='tanh', W_regularizer=None, U_regularizer=None, b_regularizer=None, dropout_W=0.0, dropout_U=0.0)
```

出力が入力にフィードバックされる完全連結RNN
出力が入力にフィードバックされる全結合RNN

__引数__

Expand Down

0 comments on commit 710dbe6

Please sign in to comment.