Programando Redes Neurais em PyTorch em Apenas 10 Minutos #1

Posted by


Olá e bem-vindo ao primeiro tutorial da série "Programando em 10 minutos" sobre Redes Neurais em PyTorch! Neste tutorial, vamos abordar o básico de como criar e treinar redes neurais utilizando a biblioteca PyTorch em apenas 10 minutos. Vamos lá!

O PyTorch é uma biblioteca de aprendizado de máquina de código aberto que oferece suporte a computação numérica eficiente utilizando tensores. Ele também é conhecido por sua facilidade de uso e flexibilidade para desenvolvimento de modelos de aprendizado profundo. Vamos começar instalando o PyTorch em seu ambiente Python:

!pip install torch torchvision

Agora que temos o PyTorch instalado, vamos começar a construir nossa rede neural. Vamos criar uma rede simples com uma camada de entrada, uma camada oculta e uma camada de saída. Aqui está o código para isso:

import torch
import torch.nn as nn

class RedeNeural(nn.Module):
    def __init__(self):
        super(RedeNeural, self).__init__()
        self.camada_oculta = nn.Linear(784, 128)  # 784 é o número de features de entrada, 128 é o número de neurônios na camada oculta
        self.camada_saida = nn.Linear(128, 10)  # 10 é o número de classes de saída

    def forward(self, x):
        x = torch.flatten(x, 1)  # Achatando os dados de entrada
        x = torch.relu(self.camada_oculta(x))  # Aplicando a função de ativação ReLU na camada oculta
        x = self.camada_saida(x)  # Camada de saída
        return x

Agora que temos nossa rede neural definida, vamos instanciá-la e definir a função de perda e otimizador que usaremos para treinar o modelo. Vamos usar o conjunto de dados MNIST para este tutorial:

from torchvision import datasets, transforms

# Carregando o dataset MNIST
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])  # Normalizando os dados
train_dataset = datasets.MNIST('data', train=True, download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)

# Instanciando a rede neural
rede = RedeNeural()

# Definindo a função de perda e o otimizador
criterio = nn.CrossEntropyLoss()
otimizador = torch.optim.Adam(rede.parameters(), lr=0.001)

Agora vamos treinar nosso modelo! Vamos executar o loop de treinamento por 10 épocas e imprimir a precisão do modelo a cada época:

# Treinamento do modelo
for epoch in range(10):
    for batch_idx, (x, y) in enumerate(train_loader):
        saida = rede(x)
        perda = criterio(saida, y)

        otimizador.zero_grad()
        perda.backward()
        otimizador.step()

        if batch_idx % 100 == 0:
            print('Época {}: Perda: {:.6f}'.format(epoch, perda.item()))

# Avaliando o modelo
rede.eval()
acuracia = 0
total = 0
for x, y in train_loader:
    saida = rede(x)
    _, pred = torch.max(saida, 1)
    acuracia += (pred == y).sum().item()
    total += y.size(0)

print('Acurácia do modelo: {:.2f}%'.format(100 * acuracia/total))

E é isso! Em apenas 10 minutos, você aprendeu como criar e treinar uma rede neural simples utilizando o PyTorch. Este é apenas o começo e há muito mais para explorar com o PyTorch. Continue praticando e experimentando para aprimorar suas habilidades em redes neurais. Espero que este tutorial tenha sido útil e que você esteja motivado a continuar aprendendo! Obrigado por ler e boa sorte em sua jornada de aprendizado de aprendizado de máquina com PyTorch.

0 0 votes
Article Rating
36 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@vvilela72
2 months ago

Oi Mila! Excelente seu curso lá na Alura! Muito didático, acessível. Cobriu com excelência os aspecto histórico, matemático e computacional! Parabéns!

@Helviio
2 months ago

você ensina muito bem o porém é que você lembra muito minha ex e eu nao consigo prestar atenção … e isso é mto verdade kkkk

@DanielE.Hidalgo
2 months ago

top dms

@LeonardoOliveira-oq8uw
2 months ago

O único ponto em questão é que não foi feita a rede. Como posso usar o python programando em "baixo nível" uma Multlayer Perceptron (MLP) e usar a GPU compartilhada do google colab?

@jonataswf
2 months ago

Moça qual cursos voce indica para inteligência artificial? Fique impressionado com o chatgpt, queria aprender

@Diogo.100
2 months ago

Tem como usar isso no mercado financeiro pra pegar padrão?

@sergiorocha7644
2 months ago

Treinei a rede normalizando os dados. Quando faço teste com dados na aplicação não dá certo já que não estão normalizados. Como faço?

@alexandrebenelli2699
2 months ago

Olá gostaria de parabeniza-la pelo belíssimo conteúdo! Bem eu gostaria de criar uma rede neural que pudesse pegar alguns indicadores técnicos do mercado financeiro e deixar ela me mostrar quais as melhores configurações deste mesmo indicador técnico? Desde já agradeço!

@jonatas370
2 months ago

Vc pode me ajudar a criar um comparador de marcas? Com base em uma imagem modelo ele pesquisa em meio a outras a mais parecida.

@ai-sim23
2 months ago

amei o video

@srjj9132
2 months ago

Criar um software que dialoga com si proprio como 2 nucleo em 1. Dar capacidade de si auto programar updates . Simular um ego + learn . Com pequeno banco de dados
Acho que o "eu existo" da i.a vira do auto polimento do softwar que simula o ego !! É o que quero fazer ..

@allexs1773
2 months ago

Nossa adorei seu vídeo muito top tomara que vire um quadro 🙂

@donyjunior
2 months ago

Se for pra contar 10 minutos, não vale fazer corte nenhum, quanto mais um a cada 5 segundos. Kkkk Não queria ser chato. Valeu o like. 🙂

@tangerchef6662
2 months ago

Dá pra entender o que acontece nos 32 neurônios ocultos?

@furetosan
2 months ago

Chegou a sair o video mostrando como fazer dataset no pytorch?

@vitorazevedo1646
2 months ago

Parabens, muito inteligente continue assim, precisamos de pessoas desse jeito na área

@douglasteixeiradeabreu
2 months ago

Ganhou mais um inscrito. 💯✨

@ericbraganca
2 months ago

Arrasou!

@ultimomoicano
2 months ago

ta dando erro nesta parte do código… "playlist_uploads = channel_by_id.items[0].to_dict()['contentDetails'] ['relatedPlaylist'] ['uploads']" ainda não encontrei o motivo—> TypeError Traceback (most recent call last)

<ipython-input-35-037e36404ce1> in <module>()

8 ##acessando playlist principal do canal

9 channel_by_id = api.get_channel_info(channel_name = channel)

—> 10 playlist_uploads = channel_by_id.items[0].to_dict()['contentDetails'] ['relatedPlaylist'] ['uploads']

11 ##coletando o id dos ultimos 200 vídeos de cada canal – count

12 playlist_item_by_playlist = api.get_playlist_items(playlist_id = playlist_uploads, count = 150)

TypeError: 'NoneType' object is not subscriptable

@wildobrasil
2 months ago

ja saiu a parte dois ? nao acho