Programação  
 
Rede de conhecimento computador >> Programação >> Programação Python >> Content
Como usar PyTorch em Python [Tutorial completo]
## Introdução ao PyTorch

Etapa 1:configuração do ambiente

* Instale Python e crie um ambiente virtual
- Python 3.6 ou superior é recomendado.
- Crie um ambiente virtual usando `python -m venv venv` (ou `virtualenv venv` para versões mais antigas do Python) e ative-o com `source venv/bin/activate` no Linux/macOS ou `venv\Scripts\activate` no Windows .


* Instale o PyTorch
- Use `pip` para instalar o PyTorch:`pip install torch torchvision`.
- Para suporte a GPU, instale `torch` com a opção `-c pytorch`.


Etapa 2:Exemplo Simples - Criando um Tensor

```píton
importar tocha

Crie um tensor a partir de uma lista


tensor =tocha.tensor([1, 2, 3])

Imprima o tensor


imprimir (tensor)

Imprima a forma do tensor


imprimir(tensor.forma)

Imprima o tipo do tensor


imprimir(tensor.dtype)
```

Saída:

```
tensor([1, 2, 3])
tocha.Size([3])
tocha.int64
```

Etapa 3:Operações matemáticas básicas

```píton

Adição de elemento


tensor =tocha.tensor([1, 2, 3])
tensor2 =tocha.tensor([4, 5, 6])
resultado =tensor + tensor2
imprimir (resultado)

Saída:tensor([ 5, 7, 9])



Multiplicação de matrizes


matriz1 =tocha.tensor([[1, 2], [3, 4]])
matriz2 =tocha.tensor([[5, 6], [7, 8]])
resultado =tocha.mm(matriz1, matriz2)
imprimir (resultado)

Saída:tensor([[19, 22], [43, 50]])


```

Etapa 4:usar GPU para computação mais rápida

```píton

Verifique se CUDA está disponível


se torch.cuda.is_available():
# Mova os tensores para GPU
dispositivo =tocha.device("cuda")
tensor =tensor.to(dispositivo)
tensor2 =tensor2.to(dispositivo)

# Executar operações na GPU
resultado =tensor + tensor2

# Mova o resultado de volta para a CPU se necessário
resultado =resultado.to("cpu")

imprimir (resultado)
```

Trabalhando com dados



Etapa 1:conjunto de dados

PyTorch fornece uma maneira conveniente de trabalhar com conjuntos de dados usando sua classe `Dataset`. Aqui está um exemplo:

```píton
classe MeuDataset(torch.utils.data.Dataset):
def __init__(self, dados, rótulos):
self.data =dados
self.labels =rótulos

def __getitem__(self, índice):
retornar self.data[index], self.labels[index]

def __len__(auto):
retornar len(self.dados)

Crie uma instância do conjunto de dados


conjunto de dados =MeuConjunto de Dados(dados, rótulos)
```

Etapa 2:DataLoader

Use `DataLoader` para carregar dados em lotes com eficiência durante o treinamento.

```píton

Definir tamanho do lote


tamanho_do_lote =32

Crie um carregador de dados


data_loader =torch.utils.data.DataLoader(conjunto de dados, batch_size=batch_size)

Iterar os lotes


para lote em data_loader:
# Aqui, batch seria uma tupla de `(data, rótulos)`
```

Construindo uma Rede Neural



Etapa 1:inicialize sua rede

```píton
importar torch.nn como nn

Defina uma rede neural simples com 3 camadas


classe MinhaNeuralNetwork(nn.Module):
def __init__(self):
super(MinhaRedeNeural, self).__init__()
self.layer1 =nn.Linear(784, 256) # Camada de entrada
self.layer2 =nn.Linear(256, 128) # Camada oculta
self.layer3 =nn.Linear(128, 10) # Camada de saída

def para frente(self, x):
x =x.view(x.shape[0], -1) # Achatar entrada
x =F.relu(self.layer1(x)) # Função de ativação (ReLU)
x =F.relu(self.layer2(x)) # Função de ativação (ReLU)
x =F.log_softmax(self.layer3(x)) # Camada de saída com softmax
retornar x

Inicializar a rede


rede =MinhaRedeNeural()
```

Etapa 2:Definir função de perda e otimizador

```píton
importar torch.optim como optim

Defina a função de perda (aqui usamos perda de entropia cruzada)


perda_fn =nn.CrossEntropyLoss()

Definir otimizador (aqui usamos gradiente descendente estocástico)


otimizador =optim.SGD(network.parameters(), lr=0,001)
```

Etapa 3:treinar a rede

```píton

Treine a rede por 10 épocas


para época no intervalo (10):
para lote em data_loader:
# Obtenha entradas e rótulos
entradas, rótulos =lote

# Gradientes claros
otimizador.zero_grad()

#Passe para frente
saídas =rede (entradas)

# Perda de cálculo
perda =loss_fn(saídas, rótulos)

# Retrocesso e atualização de pesos
perda.backward()
otimizador.step()

print(f"Época {época + 1}:Perda:{perda.item()}")
```

Etapa 4:avaliar a rede

```píton

Avalie a precisão da rede no conjunto de dados de teste


com torch.no_grad():
correto =0
total =0
para lote em test_data_loader:
entradas, rótulos =lote

#Passe para frente
saídas =rede (entradas)

# Obtenha previsões
_, previsto =torch.max(outputs.data, 1)

# Atualizar contagem de precisão
total +=rótulos.tamanho(0)
correto +=(previsto ==rótulos).sum().item()

# Calcule a precisão
precisão =correto / total
print(f"Precisão nos dados de teste:{precisão * 100}%")
```

Anterior :

Próximo :
  Os artigos relacionados
·Como fazer Python script executável 
·Como importar um arquivo Python para trabalhar em uma G…
·Como conectar Lambda em Python 
·Como escrever um script de Bot 
·Programação de Computadores Terminologia Tutoriais 
·O que é um Python GIL 
·Como configurar Apps Python 
·Como converter tipo de matriz para Float Python 
·Como link para Python Apache 
·Como calcular a média dos montantes em Python 
  Artigos em destaque
·Como abrir um arquivo de NPP Feito por Explosion Art 
·Como usar JS para escrever para outro documento 
·Como atualizar linhas em MySQL 
·Como converter uma data Transact- SQL em um String 
·Como código da matriz subtração em C + + 
·Os cursores implícitos contra cursores explícitos 
·Como fazer uma raiz quadrada em C + + 
·Como permitir PHP escrever para arquivo 
·O que é o Tampão & unbuffer em Memória 
·Como escrever um programa Java que solicita um usuário…
Cop e direita © Rede de conhecimento computador http://ptcomputador.com Todos os Direitos Reservados