コード例 #1
0
    def __init__(self, HPARAMS):
        super().__init__()
        # HPARAMS
        self.save_hyperparameters()
        self.model = Wav2VecLSTM(HPARAMS['model_hidden_size'])

        self.classification_criterion = MSE()
        self.regression_criterion = MSE()
        self.mae_criterion = MAE()
        self.rmse_criterion = RMSELoss()
        self.accuracy = Accuracy()

        self.alpha = HPARAMS['model_alpha']
        self.beta = HPARAMS['model_beta']
        self.gamma = HPARAMS['model_gamma']

        self.lr = HPARAMS['training_lr']

        self.csv_path = HPARAMS['speaker_csv_path']
        self.df = pd.read_csv(self.csv_path, sep=' ')
        self.h_mean = self.df['Height'].mean()
        self.h_std = self.df['Height'].std()
        self.a_mean = self.df['Age'].mean()
        self.a_std = self.df['Age'].std()

        print(f"Model Details: #Params = {self.count_total_parameters()}\t#Trainable Params = {self.count_trainable_parameters()}")
コード例 #2
0
    def __init__(self, HPARAMS):
        super().__init__()
        # HPARAMS
        self.save_hyperparameters()
        self.models = {
            'wav2vecLSTMAttn': Wav2VecLSTM,
            'spectralCNNLSTM': SpectralCNNLSTM,
            'MultiScale': SpectralMultiScale,
        }
        self.model = self.models[HPARAMS['model_type']](HPARAMS['hidden_size'])

        self.classification_criterion = MSE()
        self.regression_criterion = MSE()
        self.mae_criterion = MAE()
        self.rmse_criterion = RMSELoss()
        self.accuracy = Accuracy()

        self.alpha = HPARAMS['alpha']
        self.beta = HPARAMS['beta']
        self.gamma = HPARAMS['gamma']

        self.lr = HPARAMS['lr']

        self.csv_path = HPARAMS['speaker_csv_path']
        self.df = pd.read_csv(self.csv_path)
        self.h_mean = self.df['height'].mean()
        self.h_std = self.df['height'].std()
        self.a_mean = self.df['age'].mean()
        self.a_std = self.df['age'].std()

        print(
            f"Model Details: #Params = {self.count_total_parameters()}\t#Trainable Params = {self.count_trainable_parameters()}"
        )
コード例 #3
0
ファイル: timit_trainer.py プロジェクト: shangeth/DCASE
def inference(model, loader, label_name, logger, log_path, save_model_file):
    m, M = (144.78, 203.2)
    model.load_state_dict(torch.load(log_path + save_model_file))
    true_labels = []
    predictions = []
    model.eval()  # evaluation mode
    with torch.no_grad():  # no gradients/back propagation for evaluation
        for batch in loader:
            batch_x, batch_y = batch
            batch_x, batch_y = batch_x.float().to(device), batch_y.float().to(
                device)
            y_hat = model(batch_x)  # forward pass throough model

            predictions += y_hat.cpu().detach().view(-1)
            true_labels += batch_y.cpu().detach().view(-1)

    prediction = torch.Tensor(predictions) * (M - m) + m
    label = torch.Tensor(true_labels) * (M - m) + m

    mse = MSE()(prediction, label)
    mae = MAE()(prediction, label)
    rmse = RMSE()(prediction, label)

    print(f'\n{label_name} Dataset :\tMSE : {mse}\tMAE : {mae}\tRMSE: {rmse}')
    logger.info(
        f'\n{label_name} Dataset :\tMSE : {mse}\tMAE : {mae}\tRMSE: {rmse}')
コード例 #4
0
def test_mse(pred, target, exp):
    mse = MSE()
    assert mse.name == 'mse'

    score = mse(pred=torch.tensor(pred), target=torch.tensor(target))

    assert isinstance(score, torch.Tensor)
    assert score.item() == exp
コード例 #5
0
def test_mse():
    mse = MSE()
    assert mse.name == 'mse'

    pred = torch.tensor([0., 1, 2, 3])
    target = torch.tensor([0., 1, 2, 2])
    score = mse(pred, target)
    assert isinstance(score, torch.Tensor)
コード例 #6
0
    def __init__(self, HPARAMS):
        super().__init__()
        # HPARAMS
        self.save_hyperparameters()
        lstm_inp=512
        lstm_h = HPARAMS['model_hidden_size']
        alpha = HPARAMS['model_alpha']
        beta = HPARAMS['model_beta']
        gamma = HPARAMS['model_gamma']
        csv_path = HPARAMS['speaker_csv_path']

        self.encoder = Wav2Vec(pretrained=True)
        for param in self.encoder.parameters():
            param.requires_grad = False

        for param in self.encoder.feature_extractor.conv_layers[5:].parameters():
            param.requires_grad = True

        self.lstm = nn.LSTM(lstm_inp, lstm_h, batch_first=True)
        self.attention = Attention(lstm_h)
    
        self.height_regressor = nn.Linear(lstm_h, 1)
        self.age_regressor = nn.Linear(lstm_h, 1)
        self.gender_classifier = nn.Linear(lstm_h, 1)

        self.classification_criterion = MSE()
        self.regression_criterion = MSE()
        self.mae_criterion = MAE()
        self.rmse_criterion = RMSELoss()
        self.accuracy = Accuracy()

        self.alpha = alpha
        self.beta = beta
        self.gamma = gamma

        self.lr = HPARAMS['training_lr']

        self.csv_path = csv_path
        self.df = pd.read_csv(self.csv_path, sep=' ')
        self.h_mean = self.df['Height'].mean()
        self.h_std = self.df['Height'].std()
        self.a_mean = self.df['Age'].mean()
        self.a_std = self.df['Age'].std()

        print(f"Model Details: #Params = {self.count_total_parameters()}\t#Trainable Params = {self.count_trainable_parameters()}")
コード例 #7
0
    def __init__(
        self,
        regression_task,
        classification_task,
        input_size,
        hidden_size,
        learning_rate,
        classifier_lambda,
        tanh_loss,
        fill_missing_regression,
        regressor_activation,
        classifier_loss_weights=None,
        **kwargs
    ):
        super().__init__()

        self.save_hyperparameters()

        # Sanity checks
        assert 0 <= classifier_lambda <= 1

        # Layers
        self.hidden_fc = nn.Linear(
            in_features=input_size, out_features=hidden_size, bias=True
        )
        
        if classification_task:
            self.classifier_hidden_fc = nn.Linear(
                in_features=hidden_size,
                out_features=hidden_size,
                bias=True
            )
            self.classifier_fc = nn.Linear(
                in_features=hidden_size,
                out_features=2,  # It's a binary classification
                bias=True,
            )
            self._build_classifier_loss_weigths(classifier_loss_weights)

        if regression_task:
            self.regressor_hidden_fc = nn.Linear(
                in_features=hidden_size,
                out_features=hidden_size,
                bias=True,
            )
            self.regressor_fc = nn.Linear(
                in_features=hidden_size, out_features=1, bias=True  # It's a regression
            )

        # Metrics
        if classification_task:
            self.f1 = F1()
            self.precision= Precision()
            self.recall = Recall()
        if regression_task:
            self.mse = MSE()