diff --git a/deepcase/__main__.py b/deepcase/__main__.py index caff37c..fe31be4 100644 --- a/deepcase/__main__.py +++ b/deepcase/__main__.py @@ -200,6 +200,7 @@ batch_size = args.batch, learning_rate = 0.01, teach_ratio = 0.5, + delta = args.delta, verbose = not args.silent, ) diff --git a/deepcase/context_builder/context_builder.py b/deepcase/context_builder/context_builder.py index 1793315..6ccdc28 100644 --- a/deepcase/context_builder/context_builder.py +++ b/deepcase/context_builder/context_builder.py @@ -196,7 +196,7 @@ def forward(self, X, y=None, steps=1, teach_ratio=0.5): ######################################################################## def fit(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, - optimizer=optim.SGD, teach_ratio=0.5, verbose=True): + optimizer=optim.SGD, teach_ratio=0.5, delta=0.1, verbose=True): """Fit the sequence predictor with labelled data Parameters @@ -222,6 +222,9 @@ def fit(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, teach_ratio : float, default=0.5 Ratio of sequences to train including labels. + delta : float, default=0.1 + Label smoothing factor to apply during training. + verbose : boolean, default=True If True, prints progress. @@ -243,7 +246,7 @@ def fit(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, self.train() # Set criterion and optimiser - criterion = LabelSmoothing(self.decoder_event.out.out_features, 0.1) + criterion = LabelSmoothing(self.decoder_event.out.out_features, delta) optimizer = optimizer( params = self.parameters(), lr = learning_rate @@ -356,7 +359,8 @@ def predict(self, X, y=None, steps=1): def fit_predict(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, - optimizer=optim.SGD, teach_ratio=0.5, verbose=True): + optimizer=optim.SGD, teach_ratio=0.5, delta=0.1, + verbose=True): """Fit the sequence predictor with labelled data Parameters @@ -382,6 +386,9 @@ def fit_predict(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, teach_ratio : float, default=0.5 Ratio of sequences to train including labels + delta : float, default=0.1 + Label smoothing factor to apply during training + verbose : boolean, default=True If True, prints progress @@ -401,6 +408,7 @@ def fit_predict(self, X, y, epochs=10, batch_size=128, learning_rate=0.01, learning_rate = learning_rate, optimizer = optimizer, teach_ratio = teach_ratio, + delta = delta, verbose = verbose, ).predict(X) diff --git a/deepcase/module.py b/deepcase/module.py index ba26e63..c7f8bca 100644 --- a/deepcase/module.py +++ b/deepcase/module.py @@ -90,6 +90,7 @@ def fit(self, learning_rate = 0.01, optimizer = optim.SGD, teach_ratio = 0.5, + delta = 0.1, # Interpreter-specific parameters iterations = 100, @@ -132,6 +133,9 @@ def fit(self, teach_ratio : float, default=0.5 Ratio of sequences to train including labels. + delta : float, default=0.1 + Label smoothing factor to apply during ContextBuilder training. + iterations : int, default=100 Number of iterations for query. @@ -169,6 +173,7 @@ def fit(self, learning_rate = learning_rate, optimizer = optimizer, teach_ratio = teach_ratio, + delta = delta, verbose = verbose, ) @@ -249,6 +254,7 @@ def fit_predict(self, learning_rate = 0.01, optimizer = optim.SGD, teach_ratio = 0.5, + delta = 0.1, # Interpreter-specific parameters iterations = 100, @@ -291,6 +297,9 @@ def fit_predict(self, teach_ratio : float, default=0.5 Ratio of sequences to train including labels. + delta : float, default=0.1 + Label smoothing factor to apply during ContextBuilder training. + iterations : int, default=100 Number of iterations for query. @@ -335,6 +344,7 @@ def fit_predict(self, learning_rate = learning_rate, optimizer = optimizer, teach_ratio = teach_ratio, + delta = delta, iterations = iterations, query_batch_size = query_batch_size, strategy = strategy, diff --git a/docs/source/usage/code.rst b/docs/source/usage/code.rst index cc8cfef..24f2429 100644 --- a/docs/source/usage/code.rst +++ b/docs/source/usage/code.rst @@ -106,6 +106,7 @@ Once the ``context_builder`` is created, we train it using the :py:meth:`fit()` epochs = 10, # Number of epochs to train with batch_size = 128, # Number of samples in each training batch, in paper this was 128 learning_rate = 0.01, # Learning rate to train with, in paper this was 0.01 + delta = 0.1, # Label smoothing factor verbose = True, # If True, prints progress )