あなたの質問から、あなたが探しているのは、順方向と逆方向の両方で入力に適用される共有重みを持つレイヤーまたはレイヤーのセットを持つ便利な方法のようです。
つまり、畳み込みが時間ステップのセットを介してパターンを識別する方法に似ていますが、入力バッファーが循環していると見なされます。
これを実現する便利な方法は、特別な「畳み込み」レイヤーを再利用可能な補助モデル内に配置し、結果を最大プールすることです。次のようなもの:
from tensorflow import keras
from tensorflow.keras.layers import *
from tensorflow.keras.models import Model
from tensorflow.keras import backend as K
def make_inner_model():
inp = Input(shape=(2,))
h1 = Dense(8, activation='relu')(inp)
out = Dense(1)(h1)
model = Model(inp, out)
return model
def make_model(inner_model):
inp = Input(shape=(2,))
rev = Lambda(lambda x: K.concatenate([x[:, 1:], x[:, 0:1]], axis=1))(inp)
r1 = inner_model(inp)
r2 = inner_model(rev)
out = Maximum()([r1, r2])
model = Model(inp, out)
model.compile('adam', 'mse')
return model
inner = make_inner_model()
model = make_model(inner)
model.summary()