JETSON NANO - CREA TU PRIMER RED NEURONAL CONVOLUCIONAL (CNN)

  Рет қаралды 25

Innova 3D México 2.0

Innova 3D México 2.0

Күн бұрын

Пікірлер: 3
@IN3DMEX2.0
@IN3DMEX2.0 Ай бұрын
#MODELO import torch import torch.nn as nn class CNN(nn.Module): def __init__(self): super(CNN, self).__init__() self.conv1 = nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1) self.relu1 = nn.ReLU() self.maxpool1 = nn.MaxPool2d(kernel_size=2, stride=2) self.conv2 = nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1) self.relu2 = nn.ReLU() self.maxpool2 = nn.MaxPool2d(kernel_size=2, stride=2) self.flatten = nn.Flatten() self.fc1 = nn.Linear(32 * 56 * 56, 128) self.relu3 = nn.ReLU() self.fc2 = nn.Linear(128, 2) def forward(self, x): x = self.conv1(x) x = self.relu1(x) x = self.maxpool1(x) x = self.conv2(x) x = self.relu2(x) x = self.maxpool2(x) x = self.flatten(x) x = self.fc1(x) x = self.relu3(x) x = self.fc2(x) return x # Crea una instancia de la CNN modelo = CNN()
@IN3DMEX2.0
@IN3DMEX2.0 Ай бұрын
#ENTRENAMIENTO import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision import datasets, transforms from modelo import CNN # Importa la clase CNN # Define el dispositivo (CPU o GPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # Define las transformaciones para las imágenes data_transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Carga el dataset de entrenamiento train_dataset = datasets.ImageFolder(root='data/training_set', transform=data_transform) # Crea un DataLoader para el dataset de entrenamiento train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True) # Crea una instancia de la CNN y mueve la red al dispositivo modelo = CNN().to(device) # Define el optimizador y la función de pérdida optimizer = optim.Adam(modelo.parameters(), lr=0.001) criterion = nn.CrossEntropyLoss() # Entrena la red num_epochs = 10 for epoch in range(num_epochs): for i, (images, labels) in enumerate(train_loader): images = images.to(device) labels = labels.to(device) outputs = modelo(images) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() if i % 100 == 0: print(f'Epoch {epoch+1}/{num_epochs}, Batch {i+1}/{len(train_loader)}, Loss: {loss.item():.4f}') # Guarda los pesos del modelo entrenado torch.save(modelo.state_dict(), 'modelo_pesos.pth')
@IN3DMEX2.0
@IN3DMEX2.0 Ай бұрын
#INFERENCIA import torch from torchvision import datasets, transforms from modelo import CNN # Importa la clase CNN import os from PIL import Image # Define el dispositivo (CPU o GPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # Define las transformaciones para las imágenes data_transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Crea una instancia de la CNN y mueve la red al dispositivo modelo = CNN().to(device) # Carga los pesos del modelo entrenado modelo.load_state_dict(torch.load('modelo_pesos.pth')) # Pon el modelo en modo de evaluación modelo.eval() # Realiza predicciones sobre nuevas imágenes with torch.no_grad(): image_path = os.path.abspath('data/test_set/cats/cat.4001.jpg') image = Image.open(image_path) # Aplica las transformaciones a la imagen image = data_transform(image) # Convierte la imagen a un tensor y mueve al dispositivo image = image.unsqueeze(0).to(device) # Realiza la predicción output = modelo(image) # Obtiene la clase predicha _, predicted_class = torch.max(output.data, 1) # Define los nombres de las clases class_names = ['gato', 'perro'] # Obtiene el nombre de la clase predicted_class_name = class_names[predicted_class.item()] # Imprime la clase predicha print(f'Predicted class: {predicted_class_name}')
¿Son malas las BEBIDAS ENERGÉTICAS? Esto dice la CIENCIA
15:58
La Hiperactina
Рет қаралды 5 МЛН
Hugh Herr, el inventor de las prótesis capaces de simular el movimiento de nuestros miembros
5:57
El Futuro Es Apasionante de Vodafone
Рет қаралды 564 М.
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 2,2 МЛН
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 145 МЛН
¿Cuáles podrían ser las consecuencias de no dormir? - Claudia Aguirre
4:41
Sé Curioso — TED-Ed
Рет қаралды 6 МЛН
¿Qué es una Red Neuronal?  Parte 1 : La Neurona | DotCSV
9:15
MonoGame Open Hours - November 2024
59:35
MonoGame
Рет қаралды 583
El ÓRGANO más OLVIDADO: ¿qué hace el BAZO?
15:29
La Hiperactina
Рет қаралды 1,8 МЛН
An Introductory QGIS Workshop for Beginners
3:49:41
QGIS North America
Рет қаралды 569 М.
100 MOTIVOS por los que estudiar INFORMATICA | DotCSV
10:50
Dot CSV
Рет қаралды 423 М.
Curso Python para Principiantes
3:15:35
Fazt
Рет қаралды 8 МЛН
7 Common Excel Mistakes You HAVE to Fix Today!
11:39
MyOnlineTrainingHub
Рет қаралды 19 М.
🔴 Let's build SIGNAL with REACT NATIVE! (Navigation, Expo & Firebase)
3:36:56
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 2,2 МЛН