fela-tab / modeling_felatab.py
itstheraj's picture
initial commit
c902bdf
Raw
History Blame Contribute Delete
952 Bytes
import torch
from transformers import PreTrainedModel
from transformers.modeling_outputs import SequenceClassifierOutput
from .configuration_felatab import FelaTabConfig as _HFConfig
from .modeling import FelaTab
from .modeling import FelaTabConfig as _CoreConfig
_FIELDS = set(_CoreConfig.__dataclass_fields__.keys())
class FelaTabModel(PreTrainedModel):
config_class = _HFConfig
base_model_prefix = "model"
def __init__(self, config):
super().__init__(config)
cfg = _CoreConfig(
**{k: getattr(config, k) for k in _FIELDS if hasattr(config, k)}
)
self.model = FelaTab(cfg)
self.post_init()
def forward(self, X=None, y=None, n_support=None, task_type_id=None, **kwargs):
if task_type_id is None:
task_type_id = torch.tensor(0, device=X.device)
logits = self.model(X, y, n_support, task_type_id)
return SequenceClassifierOutput(logits=logits)