diff --git a/mhcflurry/class1_neural_network.py b/mhcflurry/class1_neural_network.py
index 5a1f6d563dd2dd37b2da1258bcf73ffe9e038195..9b65a4aa57c0890b0e313cf2070fe85f7cdd0177 100644
--- a/mhcflurry/class1_neural_network.py
+++ b/mhcflurry/class1_neural_network.py
@@ -61,6 +61,7 @@ class Class1NeuralNetwork(object):
     compile_hyperparameter_defaults = HyperparameterDefaults(
         loss="custom:mse_with_inequalities",
         optimizer="rmsprop",
+        learning_rate=None,
     )
     """
     Loss and optimizer hyperparameters. Any values supported by keras may be
@@ -575,6 +576,12 @@ class Class1NeuralNetwork(object):
                 loss=loss_name_or_function,
                 optimizer=self.hyperparameters['optimizer'])
 
+        if self.hyperparameters['learning_rate'] is not None:
+            from keras import backend as K
+            K.set_value(
+                self.network().optimizer.lr,
+                self.hyperparameters['learning_rate'])
+
         if loss_supports_inequalities:
             # Do not sample negative affinities: just use an inequality.
             random_negative_ic50 = self.hyperparameters['random_negative_affinity_min']