Я использовал код для байесовского lstm, используя библиотеку edward2 из статьи Байесовские слои: модуль для неопределенности нейронной сети:
lstm=ed.layers.LSTMCellReparameterization(8)
output_layer=tf.keras.layers.Dense(4)
def loss_fn(x,lable,datasetsize):
state = lstm.get_initial_state(x)
nll = 0.
for t in range(x.shape[0]):
net, state = lstm(x, state)
logits = output_layer(net)
nll += tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(
lable, logits=logits))
k1 = sum(lstm.losses) / datasetsize
loss=nll+k1
returnloss
loss1=loss_fn(b1,Y,2000)
Я хочу использовать этот код для обучения нейронной сети. Может ли кто-нибудь мне помочь?