Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions csrank/choicefunction/cmpnet_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/choicefunction/fate_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/choicefunction/feta_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/choicefunction/ranknet_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
31 changes: 0 additions & 31 deletions csrank/core/cmpnet_core.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from itertools import permutations
import logging

from keras import backend as K
from keras import Input
from keras import Model
from keras.layers import concatenate
Expand All @@ -10,7 +9,6 @@
from keras.regularizers import l2
import numpy as np
from sklearn.utils import check_random_state
import tensorflow as tf

from csrank.constants import allowed_dense_kwargs
from csrank.layers import NormalizedDense
Expand All @@ -36,7 +34,6 @@ def __init__(
self.logger = logging.getLogger("CmpNet")
self.batch_normalization = batch_normalization
self.activation = activation
self.hash_file = None

self.batch_size = batch_size

Expand Down Expand Up @@ -197,31 +194,3 @@ def _predict_scores_fixed(self, X, **kwargs):
self.logger.info("Done predicting scores")

return scores

def clear_memory(self, **kwargs):
"""
Clear the memory, restores the currently fitted model back to prevent memory leaks.

Parameters
----------
**kwargs :
Keyword arguments for the function
"""
if self.hash_file is not None:
self.model.save_weights(self.hash_file)
K.clear_session()
sess = tf.Session()
K.set_session(sess)

self._initialize_optimizer()
self._initialize_regularizer()
self._construct_layers(
kernel_regularizer=self.kernel_regularizer_,
kernel_initializer=self.kernel_initializer,
activation=self.activation,
**self.kwargs,
)
self.model = self.construct_model()
self.model.load_weights(self.hash_file)
else:
self.logger.info("Cannot clear the memory")
38 changes: 0 additions & 38 deletions csrank/core/fate_network.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging

import keras.backend as K
from keras.layers import Dense
from keras.layers import Input
from keras.layers.merge import concatenate
Expand All @@ -9,7 +8,6 @@
from keras.regularizers import l2
import numpy as np
from sklearn.utils import check_random_state
import tensorflow as tf

from csrank.constants import allowed_dense_kwargs
from csrank.layers import create_input_lambda
Expand Down Expand Up @@ -185,7 +183,6 @@ def __init__(self, n_hidden_set_layers=1, n_hidden_set_units=1, **kwargs):
kernel_regularizer=self.kernel_regularizer_,
)
self.is_variadic = True
self.hash_file = None

def _create_set_layers(self, **kwargs):
"""
Expand Down Expand Up @@ -662,38 +659,3 @@ def _predict_scores_fixed(self, X, **kwargs):
predicted_scores = joint_model.predict(X)
self.logger.info("Done predicting scores")
return predicted_scores

def clear_memory(self, n_objects=5, **kwargs):
"""
Clear the memory, restores the currently fitted model back to prevent memory leaks.

Parameters
----------
n_objects : int
float (n_instances, n_objects, n_features)
**kwargs :
Keyword arguments for the function
"""
if self.hash_file is not None:
self.model.save_weights(self.hash_file)
K.clear_session()
sess = tf.Session()
K.set_session(sess)
self._initialize_optimizer()
self._initialize_regularizer()
self._construct_layers(
activation=self.activation,
kernel_initializer=self.kernel_initializer,
kernel_regularizer=self.kernel_regularizer_,
**self.kwargs,
)
self._create_set_layers(
activation=self.activation,
kernel_initializer=self.kernel_initializer,
kernel_regularizer=self.kernel_regularizer_,
**self.kwargs,
)
self.model = self.construct_model(self.n_object_features_fit_, n_objects)
self.model.load_weights(self.hash_file)
else:
self.logger.info("Cannot clear the memory")
33 changes: 0 additions & 33 deletions csrank/core/feta_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from keras.regularizers import l2
import numpy as np
from sklearn.utils import check_random_state
import tensorflow as tf

from csrank.constants import allowed_dense_kwargs
from csrank.layers import NormalizedDense
Expand Down Expand Up @@ -51,7 +50,6 @@ def __init__(
self.max_number_of_objects = max_number_of_objects
self.num_subsample = num_subsample
self.batch_size = batch_size
self.hash_file = None
self.optimizer = optimizer
self.add_zeroth_order_model = add_zeroth_order_model
self.n_hidden = n_hidden
Expand Down Expand Up @@ -307,8 +305,6 @@ def fit(
verbose=verbose,
**kwd,
)
if self.hash_file is not None:
self.model.save_weights(self.hash_file)

def sub_sampling(self, X, Y):
if self.n_objects_fit_ > self.max_number_of_objects:
Expand Down Expand Up @@ -338,32 +334,3 @@ def _predict_scores_fixed(self, X, **kwargs):
scores = self.model.predict(X, **kwargs)
self.logger.info("Done predicting scores")
return scores

def clear_memory(self, **kwargs):
"""
Clear the memory, restores the currently fitted model back to prevent memory leaks.

Parameters
----------
**kwargs :
Keyword arguments for the function
"""
if self.hash_file is not None:
self.model.save_weights(self.hash_file)
K.clear_session()
sess = tf.Session()
K.set_session(sess)

self._pairwise_model = None
self._zero_order_model = None
self._initialize_optimizer()
self._construct_layers(
kernel_regularizer=self.kernel_regularizer_,
kernel_initializer=self.kernel_initializer,
activation=self.activation,
**self.kwargs,
)
self.model = self.construct_model()
self.model.load_weights(self.hash_file)
else:
self.logger.info("Cannot clear the memory")
31 changes: 0 additions & 31 deletions csrank/core/ranknet_core.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging

from keras import backend as K
from keras import Input
from keras import Model
from keras.layers import add
Expand All @@ -9,7 +8,6 @@
from keras.optimizers import SGD
from keras.regularizers import l2
from sklearn.utils import check_random_state
import tensorflow as tf

from csrank.constants import allowed_dense_kwargs
from csrank.layers import NormalizedDense
Expand Down Expand Up @@ -50,7 +48,6 @@ def __init__(
self.batch_size = batch_size
self._scoring_model = None
self.model = None
self.hash_file = None
self.random_state = random_state

def _construct_layers(self, **kwargs):
Expand Down Expand Up @@ -200,31 +197,3 @@ def _predict_scores_fixed(self, X, **kwargs):
scores = scores.reshape(n_instances, n_objects)
self.logger.info("Done predicting scores")
return scores

def clear_memory(self, **kwargs):
"""
Clear the memory, restores the currently fitted model back to prevent memory leaks.

Parameters
----------
**kwargs :
Keyword arguments for the function
"""
if self.hash_file is not None:
self.model.save_weights(self.hash_file)
K.clear_session()
sess = tf.Session()
K.set_session(sess)

self._scoring_model = None
self._initialize_optimizer()
self._construct_layers(
kernel_regularizer=self.kernel_regularizer_,
kernel_initializer=self.kernel_initializer,
activation=self.activation,
**self.kwargs,
)
self.model = self.construct_model()
self.model.load_weights(self.hash_file)
else:
self.logger.info("Cannot clear the memory")
3 changes: 0 additions & 3 deletions csrank/discretechoice/cmpnet_discrete_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/discretechoice/fate_discrete_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/discretechoice/feta_discrete_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/discretechoice/ranknet_discrete_choice.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
6 changes: 0 additions & 6 deletions csrank/learner.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,6 @@ def predict_scores(self, X, **kwargs):
scores = dict()
for ranking_size, x in X.items():
n_instances, n_objects, n_features = x.shape
if "clear_memory" in dir(self):
self.clear_memory(
n_instances=n_instances,
n_objects=n_objects,
n_features=n_features,
)
scores[ranking_size] = self._predict_scores_fixed(x, **kwargs)

else:
Expand Down
3 changes: 0 additions & 3 deletions csrank/objectranking/cmp_net.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/objectranking/fate_object_ranker.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
4 changes: 0 additions & 4 deletions csrank/objectranking/feta_object_ranker.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
self.logger.info("Clearing memory")
super().clear_memory(**kwargs)
32 changes: 0 additions & 32 deletions csrank/objectranking/list_net.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import logging

from keras import backend as K
from keras import Input
from keras.layers import concatenate
from keras.layers import Dense
from keras.models import Model
from keras.optimizers import SGD
from keras.regularizers import l2
from sklearn.utils import check_random_state
import tensorflow as tf

from csrank.constants import allowed_dense_kwargs
from csrank.layers import create_input_lambda
Expand Down Expand Up @@ -52,8 +50,6 @@ def __init__(
----------
n_top : int
Size of the top-k-subrankings to consider for training
hash_file: str
File path of the model where the weights are stored to get the predictions after clearing the memory
n_hidden : int
Number of hidden layers used in the scoring network
n_units : int
Expand Down Expand Up @@ -107,7 +103,6 @@ def __init__(

self.batch_size = batch_size
self.random_state = random_state
self.hash_file = None
self.model = None
self._scoring_model = None

Expand Down Expand Up @@ -262,30 +257,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
"""
Clear the memory, restores the currently fitted model back to prevent memory leaks.

Parameters
----------
**kwargs :
Keyword arguments for the function
"""
if self.hash_file is not None:
self.model.save_weights(self.hash_file)
K.clear_session()
sess = tf.Session()
K.set_session(sess)
self._scoring_model = None
self._initialize_optimizer()
self._construct_layers(
kernel_regularizer=self.kernel_regularizer_,
kernel_initializer=self.kernel_initializer,
activation=self.activation,
**self.kwargs,
)
self.model = self.construct_model()
self.model.load_weights(self.hash_file)
else:
self.logger.info("Cannot clear the memory")
3 changes: 0 additions & 3 deletions csrank/objectranking/rank_net.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,3 @@ def predict_for_scores(self, scores, **kwargs):

def predict(self, X, **kwargs):
return super().predict(X, **kwargs)

def clear_memory(self, **kwargs):
super().clear_memory(**kwargs)