This shows you the differences between two versions of the page.
gp:laboratoare:07 [2025/03/30 21:06] maria_anca.balutoiu [Layers] |
gp:laboratoare:07 [2025/03/30 21:12] (current) maria_anca.balutoiu [Implementarea unui GAN în PyTorch] |
||
---|---|---|---|
Line 37: | Line 37: | ||
=== Discriminator Layers === | === Discriminator Layers === | ||
* **Input Layer (Imagine sau Date):** Inputul este fie o imagine reală din setul de date de antrenament, fie o imagine falsă generată de Generator. | * **Input Layer (Imagine sau Date):** Inputul este fie o imagine reală din setul de date de antrenament, fie o imagine falsă generată de Generator. | ||
- | * **Convolutional Layers (pentru imagini):** Pentru sarcinile legate de imagini, se folosesc adesea **rețele neurale convoluționale (CNN)*, care aplică straturi convoluționale datelor de intrare. Aceste straturi învață să extragă caracteristici din imaginea de intrare, cum ar fi laturi, texturi și modele. Straturile convoluționale folosesc filtre care parcurg toată imaginea și detectează aceste caracteristici. | + | * **Convolutional Layers (pentru imagini):** Pentru sarcinile legate de imagini, se folosesc adesea **rețele neurale convoluționale (CNN)**, care aplică straturi convoluționale datelor de intrare. Aceste straturi învață să extragă caracteristici din imaginea de intrare, cum ar fi laturi, texturi și modele. Straturile convoluționale folosesc filtre care parcurg toată imaginea și detectează aceste caracteristici. |
* Straturile de grupare (cum ar fi **MaxPooling**) pot fi folosite după pentru a reduce dimensionalitatea și a evidenția cele mai importante caracteristici. | * Straturile de grupare (cum ar fi **MaxPooling**) pot fi folosite după pentru a reduce dimensionalitatea și a evidenția cele mai importante caracteristici. | ||
- | * Fully Connected (Linear) Layers | + | * **Fully Connected (Linear) Layers:** După extragerea caracteristicilor (prin convoluție și pooling), caracteristicile se aplatizează într-un vector, iar datele trec prin straturi complet conectate. Aceste straturi învață să ia decizii finale cu privire la faptul dacă intrarea este reală sau falsă. |
- | * Funcții de Activare | + | * **Funcții de Activare:** |
- | <hidden> | + | * **LeakyReLU** este adesea folosit ca funcție de activare în straturile ascunse ale Discriminatorului. |
+ | * Stratul de ieșire utilizează de obicei funcția **Sigmoid** (sau uneori **Softmax**) pentru a genera o probabilitate între 0 și 1. Această probabilitate reprezintă probabilitatea ca intrarea să fie reală (aproape de 1) sau falsă (aproape de 0). | ||
+ | |||
+ | ==== Implementarea unui GAN în PyTorch ==== | ||
+ | <code> | ||
+ | class Generator(nn.Module): | ||
+ | def __init__(self): | ||
+ | super(Generator, self).__init__() | ||
+ | self.model = nn.Sequential( | ||
+ | nn.Linear(100, 256), # First linear layer (input: 100 -> 256) | ||
+ | nn.ReLU(), # Activation function | ||
+ | nn.Linear(256, 512), # Second linear layer (256 -> 512) | ||
+ | nn.ReLU(), # Activation function | ||
+ | nn.Linear(512, 1024), # Third linear layer (512 -> 1024) | ||
+ | nn.ReLU(), # Activation function | ||
+ | nn.Linear(1024, 64*64), # Final layer (1024 -> 64x64 terrain) | ||
+ | nn.Tanh() # Activation function for output (-1 to 1) | ||
+ | ) | ||
+ | |||
+ | def forward(self, x): | ||
+ | return self.model(x).view(-1, 64, 64) | ||
+ | </code> | ||
- | </hidden> | ||
==== Tasks ==== | ==== Tasks ==== |