def RWA(input_dim, output_dim):
x = Input((input_dim, ))
h_tm1 = Input((output_dim, ))
n_tm1 = Input((output_dim, ))
d_tm1 = Input((output_dim, ))
x_h = concatenate([x, h_tm1])
u = Dense(output_dim)(x)
g = Dense(output_dim, activation='tanh')(x_h)
a = Dense(output_dim, use_bias=False)(x_h)
e_a = Lambda(lambda x: K.exp(x))(a)
z = multiply([u, g])
nt = add([n_tm1, multiply([z, e_a])])
dt = add([d_tm1, e_a])
dt = Lambda(lambda x: 1.0 / x)(dt)
ht = multiply([nt, dt])
ht = Activation('tanh')(ht)
return RecurrentModel(input=x, output=ht,
initial_states=[h_tm1, n_tm1, d_tm1],
final_states=[ht, nt, dt],
state_initializer=[initializers.random_normal(stddev=1.0)])
#####################################################################
# Settings
#####################################################################
评论列表
文章目录