Clemylia commited on
Commit
66b68b4
·
verified ·
1 Parent(s): 9ece389

Upload audio_classifier.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. audio_classifier.py +42 -0
audio_classifier.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import torch
3
+ import torch.nn as nn
4
+ import torch.nn.functional as F
5
+
6
+ # Le nombre de classes est tiré de ton dataset.
7
+ NUM_CLASSES = 2
8
+
9
+ class AudioClassifier(nn.Module):
10
+ """
11
+ Réseau de Neurones Convolutionnels (CNN) simple pour la classification audio.
12
+ C'est l'architecture que nous avons entraînée from scratch.
13
+ """
14
+ def __init__(self):
15
+ super(AudioClassifier, self).__init__()
16
+
17
+ self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=(5, 5), padding=2)
18
+ self.bn1 = nn.BatchNorm2d(32)
19
+ self.pool1 = nn.MaxPool2d(kernel_size=(2, 2))
20
+
21
+ self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=(3, 3), padding=1)
22
+ self.bn2 = nn.BatchNorm2d(64)
23
+ self.pool2 = nn.MaxPool2d(kernel_size=(2, 2))
24
+
25
+ self.conv3 = nn.Conv2d(in_channels=64, out_channels=128, kernel_size=(3, 3), padding=1)
26
+ self.bn3 = nn.BatchNorm2d(128)
27
+ self.pool3 = nn.MaxPool2d(kernel_size=(2, 2))
28
+
29
+ self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
30
+
31
+ self.fc1 = nn.Linear(128 * 1 * 1, NUM_CLASSES)
32
+
33
+ def forward(self, x):
34
+ x = self.pool1(F.relu(self.bn1(self.conv1(x))))
35
+ x = self.pool2(F.relu(self.bn2(self.conv2(x))))
36
+ x = self.pool3(F.relu(self.bn3(self.conv3(x))))
37
+
38
+ x = self.avgpool(x)
39
+
40
+ x = torch.flatten(x, 1)
41
+
42
+ return self.fc1(x)