私の質問はこの質問に関連しています*。
標準のテンソルフロー層を「セル」に変換して、 RNN セルと一緒に使用して再帰型ニューラル ネットワークを構成することは可能ですか?
したがって、新しい「セル」はパラメーター (重みなど) を格納し、さまざまな入力で呼び出すことができる必要があります。このようなもの:
from tf.nn import batch_normalization, conv2d
from tf.contrib.rnn import MultiRNNCell, LSTMCell
bn_cell = cell_creation_fun(batch_normalization, otherparams) # batch norm cell
conv_cell = cell_creation_fun(conv2d, otherparams ) # non-rnn conv cell
# or `conv_cell = cell_creation_fun(tf.layers.Conv2D, otherparams )` # using tf.layers
次のように使用できるようにします。
multi_cell = MultiRNNCell([LSTMCell(...), conv_cell, bn_cell])
またはこのように:
h = ...
conv_h, _ = conv_cell(h, state=None)
normed_h, _ = bn_cell(h, state=None)
私が考えることができる唯一のことは、使用したいすべてのレイヤーに対してそのような「セル」を手動で記述し、RNNCellをサブクラス化することです。しかし、作成中に「入力」パラメーターを渡すことができずに、Conv2D のような既存の関数を使用するのは簡単ではないようです。(私が管理するときにコードを投稿します。)
* より的を絞った方法で尋ねると、答えが得られる可能性があります。