diff --git a/reading_machine/src/Classifier.cpp b/reading_machine/src/Classifier.cpp
index d8418c99c563c00dfce55e7ed8f6a1e0fae89fa8..d9ead9a52e3dbf7e0beebd6ff08bc515712862a9 100644
--- a/reading_machine/src/Classifier.cpp
+++ b/reading_machine/src/Classifier.cpp
@@ -101,7 +101,7 @@ void Classifier::initNeuralNetwork(const std::vector<std::string> & definition)
             if (splited.size() != 6 or (splited.back() != "false" and splited.back() != "true"))
               util::myThrow(expected);
 
-            optimizer.reset(new torch::optim::Adam(getNN()->parameters(), torch::optim::AdamOptions(std::stof(splited[0])).amsgrad(splited.back() == "true").beta1(std::stof(splited[1])).beta2(std::stof(splited[2])).eps(std::stof(splited[3])).weight_decay(std::stof(splited[4]))));
+            optimizer.reset(new torch::optim::Adam(getNN()->parameters(), torch::optim::AdamOptions(std::stof(splited[0])).amsgrad(splited.back() == "true").betas({std::stof(splited[1]),std::stof(splited[2])}).eps(std::stof(splited[3])).weight_decay(std::stof(splited[4]))));
           }
           else
             util::myThrow(expected);
diff --git a/torch_modules/src/LSTM.cpp b/torch_modules/src/LSTM.cpp
index b8f8e7f7dfb2d568f69ccb4062764d85a7b930a8..af89a3dedddc3750451f75442213eeb52482dfda 100644
--- a/torch_modules/src/LSTM.cpp
+++ b/torch_modules/src/LSTM.cpp
@@ -5,7 +5,7 @@ LSTMImpl::LSTMImpl(int inputSize, int outputSize, LSTMOptions options) : outputA
   auto lstmOptions = torch::nn::LSTMOptions(inputSize, outputSize)
     .batch_first(std::get<0>(options))
     .bidirectional(std::get<1>(options))
-    .layers(std::get<2>(options))
+    .num_layers(std::get<2>(options))
     .dropout(std::get<3>(options));
 
   lstm = register_module("lstm", torch::nn::LSTM(lstmOptions));
@@ -13,7 +13,7 @@ LSTMImpl::LSTMImpl(int inputSize, int outputSize, LSTMOptions options) : outputA
 
 torch::Tensor LSTMImpl::forward(torch::Tensor input)
 {
-  auto lstmOut = lstm(input).output;
+  auto lstmOut = std::get<0>(lstm(input));
 
   if (outputAll)
     return lstmOut.reshape({lstmOut.size(0), -1});