CoolFace
Apppublic

zydfx/Audio_Classification

sourceHugging Faceopenrailupdated 3y agoView on Hugging Face
0likes
model.py63 linesDownload Raw Back to root
1import torch.nn as nn2 3class Conv1DNet(nn.Module):4    def __init__(self):5        super(Conv1DNet, self).__init__()6        7        # First Conv1D layer8        self.conv1 = nn.Conv1d(in_channels=1, out_channels=8, kernel_size=13, stride=1, padding=1)9        self.relu1 = nn.LeakyReLU(negative_slope=0.01)10        self.pool1 = nn.MaxPool1d(kernel_size=3)11        self.dropout1 = nn.Dropout(p=0.2)12        13        # Second Conv1D layer14        self.conv2 = nn.Conv1d(in_channels=8, out_channels=16, kernel_size=11, stride=1, padding=1)15        self.relu2 = nn.LeakyReLU(negative_slope=0.01)16        self.pool2 = nn.MaxPool1d(kernel_size=3)17        self.dropout2 = nn.Dropout(p=0.2)18        19        # Third Conv1D layer20        self.conv3 = nn.Conv1d(in_channels=16, out_channels=32, kernel_size=9, stride=1, padding=1)21        self.relu3 = nn.LeakyReLU(negative_slope=0.01)22        self.pool3 = nn.MaxPool1d(kernel_size=3)23        self.dropout3 = nn.Dropout(p=0.2)24        # forth Conv1D layer25        self.conv4 = nn.Conv1d(in_channels=32, out_channels=64, kernel_size=7, stride=1, padding=1)26        self.relu4 = nn.LeakyReLU(negative_slope=0.01)27        self.pool4 = nn.MaxPool1d(kernel_size=3)28        self.dropout4 = nn.Dropout(p=0.2)29        30        31        # Fully connected layer32        self.fc1 = nn.Linear(in_features=6144, out_features=2418)33        self.fc2 = nn.Linear(in_features=2418, out_features=256)34        self.fc3 = nn.Linear(in_features=256, out_features=10)35 36    def forward(self, x):37        # Pass the input through each layer38        batch_size=x.size(0)39        #print(x.size())40        #print(x)41        x = self.conv1(x)42        x = self.relu1(x)43        #print(x.size())44        x = self.pool1(x)45        x = self.dropout1(x)46        x = self.conv2(x)47        x = self.relu2(x)48        x = self.pool2(x)49        x = self.dropout2(x)50        x = self.conv3(x)51        x = self.relu3(x)52        x = self.pool3(x)53        x = self.dropout3(x)54        x = self.conv4(x)55        x = self.relu4(x)56        x = self.pool4(x)57        x = self.dropout4(x)58        #print(x.size(0))59        x = x.view(batch_size, -1)60        x = self.fc1(x)61        x = self.fc2(x)62        x = self.fc3(x)63        return x