pibot-jointbert / module.py
smenaaliaga's picture
Upload PIBot Joint BERT model with full reproducibility
4a7e280 verified
import torch.nn as nn
# class IntentClassifier(nn.Module):
# def __init__(self, input_dim, num_intent_labels, dropout_rate=0.):
# super(IntentClassifier, self).__init__()
# self.dropout = nn.Dropout(dropout_rate)
# self.linear = nn.Linear(input_dim, num_intent_labels)
# def forward(self, x):
# x = self.dropout(x)
# return self.linear(x)
class IndicatorClassifier(nn.Module):
def __init__(self, input_dim, num_indicator_labels, dropout_rate=0.):
super(IndicatorClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_indicator_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class MetricTypeClassifier(nn.Module):
def __init__(self, input_dim, num_metric_type_labels, dropout_rate=0.):
super(MetricTypeClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_metric_type_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class SeasonalClassifier(nn.Module):
def __init__(self, input_dim, num_seasonal_labels, dropout_rate=0.):
super(SeasonalClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_seasonal_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class ActivityClassifier(nn.Module):
def __init__(self, input_dim, num_activity_labels, dropout_rate=0.):
super(ActivityClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_activity_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class FrequencyClassifier(nn.Module):
def __init__(self, input_dim, num_frequency_labels, dropout_rate=0.):
super(FrequencyClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_frequency_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class CalcModeClassifier(nn.Module):
def __init__(self, input_dim, num_calc_mode_labels, dropout_rate=0.):
super(CalcModeClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_calc_mode_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
class ReqFormClassifier(nn.Module):
def __init__(self, input_dim, num_req_form_labels, dropout_rate=0.):
super(ReqFormClassifier, self).__init__()
self.dropout = nn.Dropout(dropout_rate)
self.linear = nn.Linear(input_dim, num_req_form_labels)
def forward(self, x):
x = self.dropout(x)
return self.linear(x)
# class ContextModeClassifier(nn.Module):
# def __init__(self, input_dim, num_context_mode_labels, dropout_rate=0.):
# super(ContextModeClassifier, self).__init__()
# self.dropout = nn.Dropout(dropout_rate)
# self.linear = nn.Linear(input_dim, num_context_mode_labels)
# def forward(self, x):
# x = self.dropout(x)
# return self.linear(x)
# class SlotClassifier(nn.Module):
# def __init__(self, input_dim, num_slot_labels, dropout_rate=0.):
# super(SlotClassifier, self).__init__()
# self.dropout = nn.Dropout(dropout_rate)
# self.linear = nn.Linear(input_dim, num_slot_labels)
# def forward(self, x):
# x = self.dropout(x)
# return self.linear(x)