Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitextor/bicleaner-ai.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bicleaner_ai/models.py')
-rw-r--r--bicleaner_ai/models.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/bicleaner_ai/models.py b/bicleaner_ai/models.py
index c5d7ea6..ea00bca 100644
--- a/bicleaner_ai/models.py
+++ b/bicleaner_ai/models.py
@@ -1,4 +1,8 @@
-from transformers import TFXLMRobertaForSequenceClassification, XLMRobertaTokenizerFast
+from transformers import (
+ TFXLMRobertaForSequenceClassification,
+ XLMRobertaConfig,
+ XLMRobertaTokenizerFast
+)
from transformers.modeling_tf_outputs import TFSequenceClassifierOutput
from transformers.optimization_tf import create_optimizer
from tensorflow.keras.optimizers.schedules import InverseTimeDecay
@@ -29,7 +33,7 @@ try:
from .layers import (
TransformerBlock,
TokenAndPositionEmbedding,
- BCClassificationHead)
+ BicleanerAIClassificationHead)
except (SystemError, ImportError):
import decomposable_attention
from metrics import FScore, MatthewsCorrCoef
@@ -40,7 +44,7 @@ except (SystemError, ImportError):
from layers import (
TransformerBlock,
TokenAndPositionEmbedding,
- BCClassificationHead)
+ BicleanerAIClassificationHead)
def calibrate_output(y_true, y_pred):
''' Platt calibration
@@ -522,7 +526,7 @@ class BCXLMRoberta(BaseModel):
def load_model(self, model_file):
settings = self.settings
- tf_model = TFXLMRBicleaner.from_pretrained(
+ tf_model = TFXLMRBicleanerAI.from_pretrained(
model_file,
num_labels=settings["n_classes"],
head_hidden_size=settings["n_hidden"],
@@ -635,13 +639,26 @@ class BCXLMRoberta(BaseModel):
return y_true, y_pred
-class TFXLMRBicleaner(TFXLMRobertaForSequenceClassification):
- """Model for sentence-level classification tasks."""
+class XLMRBicleanerAIConfig(XLMRobertaConfig):
+ '''
+ Bicleaner AI XLMR configuration class
+ adds the config parameters for the classification layer
+ '''
+ def __init__(self, head_hidden_size=2048, head_dropout=0.1,
+ head_activation='relu', **kwargs):
+ super().__init__(**kwargs)
+ self.head_hidden_size = head_hidden_size
+ self.head_dropout = head_dropout
+ self.head_activation = head_activation
+
+class TFXLMRBicleanerAI(TFXLMRobertaForSequenceClassification):
+ '''
+ Model for Bicleaner sentence-level classification tasks.
+ Overwrites XLMRoberta classifiacion layer.
+ '''
+ config_class = XLMRBicleanerAIConfig
- def __init__(self, config, head_hidden_size, head_dropout, head_activation):
- super().__init__(config)
- self.classifier = BCClassificationHead(config,
- head_hidden_size,
- head_dropout,
- head_activation,
- name='bc_classification_head')
+ def __init__(self, config, *inputs, **kwargs):
+ super().__init__(config, *inputs, **kwargs)
+ self.classifier = BicleanerAIClassificationHead(config,
+ name='bicleaner_ai_classification_head')