la función forward dentro de la clase ResidualBlock se escribio dentro de la funcion init, aunque no lo marca como error supongo que dará problemas en el futuro.
Saludos
Aprender conceptos iniciales de Deep Learning
¿Qué es el Deep Learning?
¿Qué son las redes neuronales artificiales?
¿Por qué el Deep Learning ahora?
Pytorch y los diferentes frameworks de Deep Learning
Setup en Google Colab
Entender la API de Pytorch
¿Qué son los tensores?
Tensores y datasets
Capas de una red neuronal en Pytorch
Crear una red neuronal en Pytorch
¿Cómo cargar datos en Pytorch?
¿Cómo entrenar una red en Pytorch?
Loop de entrenamiento de la red neuronal
Entrenar Redes Neuronales Profundas
Ciclo de trabajo para el Deep Learning
Espacio de modelos
Función de perdida
Método de optimización: SGD y Backpropagation
Autograd y métodos de optimización
¿Cómo evaluar la performance de la red neuronal?
Regularización de redes neuronales profundas
Implementando la Regularización
Optimización de hiperparametros
Transfer learning
Construir nuestro propio modelo
Presentación del problema
Definiendo la red generativa que construiremos: CycleGAN
Creando la red generadora convolucional
Creando el decoder de la red generadora
Construyendo las redes discriminativas
Preparando el entrenamiento
Instanciando redes, perdidas
Instanciando optimizadores y schedulers
Calculando las pérdidas
Entrenando
Cómo visualizar y debugear el entrenamiento
Cómo utilizar tu modelo una vez entrenado
Cómo utilizar una GPU personal con Google Cloud
Llegar más lejos
¿Por qué el Deep Learning es más poderoso que el Machine Learning Tradicional?
Para ir más lejos
Cierre del curso
Bonus
¿Por qué aprender Deep Learning?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 3
Preguntas 2
la función forward dentro de la clase ResidualBlock se escribio dentro de la funcion init, aunque no lo marca como error supongo que dará problemas en el futuro.
Saludos
Aporte, ¿cómo saber las dimensiones del tensor de salida en una capa de convoluciones?
Si tenemos K filtros de dimensión (N*N) y los aplicamos a una imagen gris de dimensión (W, H, 1) con P de padding y S de stride, entonces las dimensiones en la salida serán:
import torch.nn as nn
import torch.nn.functional as F
class ResidualBlock(nn.Module):
def __init__(self, in_features):
super(ResidualBlock, self).__init__()
conv_block = [ nn.ReflectionPad2(1),
nn.conv2d(in_features, in_features,3),
nn.instanceNorm2d(in_features),
nn.ReLU(True),
nn.ReflectionPad2d(1),
nn.Conv2d(in_features, in_features,3)
nn.InstanceNorm2d(in_features)
]
self.conv_block = nn.Sequential(*conv_block)
def forward(self,x):
return self.conv_block(x) + x
class Generator(nn.Module):
def __init__(self, imput_nc output_nc, n_residul_blocks=9):
super(Genertor,self).__init__()
model = [ nn.RefectionPad2d(3),
nn.Conv2d(input_nc, 64, F),
nn.InstanceNorm2d(64),
nn.ReLU(True)
]
in_feactures = 64
out_fectures = in_feactures * 2
for _ in range(2):
model += [ nn.Conv2d(in_feactures, out_fectures),3 stride=2,padding=1,
nn.InstanceNorm2d(out_fectures),
nn.ReLU(True)
]
in_feactures = out_fectures
out_fectures = in_feactures*2 ```
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.