Apnea-Detector / models /bilstm.py
AbdullahNasir's picture
Added app.py and other requirements
03ce4c5
raw
history blame
1.12 kB
import gradio as gr
import torch
import cv2
import numpy as np
import pandas as pd
from scipy.signal import find_peaks, savgol_filter
from collections import Counter
from tqdm import tqdm
import time
import os
import torch
import torch.nn as nn
import torch.fft as fft
import xgboost as xgb
from torch.utils.data import DataLoader, TensorDataset
import time
# Updated BiLSTM to handle variable layers
class BiLSTM(nn.Module):
def __init__(self, input_size, hidden_size, output_size, num_layers=2, dropout=0.1):
super(BiLSTM, self).__init__()
self.bilstm = nn.LSTM(
input_size,
hidden_size,
num_layers=num_layers,
batch_first=True,
bidirectional=True,
dropout=dropout if num_layers > 1 else 0 # Dropout only applies for num_layers > 1
)
self.fc = nn.Linear(hidden_size * 2, output_size) # Multiply hidden_size by 2 for bidirectional
def forward(self, x):
bilstm_output, _ = self.bilstm(x)
output = self.fc(bilstm_output[:, -1, :]) # Use the last time step
return output