/
grenki70
/
siames
Обзор
Документация
Войти
/
grenki70
/
siames
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
model.py
53 строки
2 KB
grenki70
first_commit
28 май 2026, 06:18
28 май 2026, 06:18
f3a78a4
Код
Авторство
О чём код?
import torch import torch.nn as nn from torchinfo import summary class SiameseNetwork(nn.Module): def __init__(self, n_mfcc: int, max_audio_len: int, dropout_rate: float = 0.5): super(SiameseNetwork, self).__init__() self.cnn = nn.Sequential( nn.Conv2d(1, 16, kernel_size=3, padding=1), nn.ReLU(), nn.MaxPool2d(2, 2), nn.Conv2d(16, 32, kernel_size=3, padding=1), nn.ReLU(), nn.MaxPool2d(2, 2), nn.Conv2d(32, 64, kernel_size=3, padding=1), nn.ReLU(), nn.MaxPool2d(2, 2), ) h_out = n_mfcc // 8 w_out = max_audio_len // 8 self.flatten_size = 64 * h_out * w_out self.classifier = nn.Sequential( nn.Linear(self.flatten_size * 2, 256), nn.ReLU(), nn.Dropout(dropout_rate), nn.Linear(256, 64), nn.ReLU(), nn.Dropout(dropout_rate), nn.Linear(64, 2), ) def forward_one(self, x): x = self.cnn(x) x = x.view(x.size(0), -1) return x def forward(self, input1, input2): out1 = self.forward_one(input1) out2 = self.forward_one(input2) combined = torch.cat((out1, out2), dim=1) return self.classifier(combined) if __name__ == "__main__": # Создаем тестовый экземпляр модели model = SiameseNetwork(n_mfcc=128, max_audio_len=128, dropout_rate=0.5) summary(model, input_size=[(16, 1, 128, 128), (16, 1, 128, 128)])