python-pytorchHow can I use Python and PyTorch to develop a project on Habr?
Python and PyTorch are powerful tools for developing projects on Habr. To get started, you will need to install PyTorch and set up a development environment. Once you have the necessary tools installed, you can begin building your project.
To demonstrate, here is an example of a simple project that uses Python and PyTorch to classify images of cats and dogs:
import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose([transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testset = torchvision.datasets.CIFAR10(root='./data', train=False,
download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
classes = ('cat', 'dog')
# define a convolutional neural network
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 2)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
net = Net()
# define a loss function and optimizer
import torch.optim as optim
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
# train the network
for epoch in range(2): # loop over the dataset multiple times
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
# get the inputs; data is a list of [inputs, labels]
inputs, labels = data
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# print statistics
running_loss += loss.item()
if i % 2000 == 1999: # print every 2000 mini-batches
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
print('Finished Training')
The code performs the following steps:
- Load and transform the data: The CIFAR10 dataset is loaded and transformed using the
transformsmodule fromtorchvision. - Define a convolutional neural network: A convolutional neural network is defined using the
nnandfunctionalmodules fromtorch. - Define a loss function and optimizer: The
CrossEntropyLossfunction is used as the loss function and theSGDoptimizer is used to update the network parameters. - Train the network: The network is trained using the
enumeratefunction and thebackwardandstepfunctions fromtorch.
Once the network is trained, it can be used to classify images of cats and dogs on Habr.
Helpful links
More of Python Pytorch
- How can I use Python and PyTorch to parse XML files?
- How can I use Yolov5 with PyTorch?
- How do I use Pytorch with Python 3.11 on Windows?
- How can I use Python PyTorch without a GPU?
- How can I use Python and PyTorch to create a Zoom application?
- How can I use Python, PyTorch, and YOLOv5 to build an object detection model?
- How can I use PyTorch with Python 3.11?
- How do I install PyTorch on a Windows computer?
- How do I install a Python PyTorch .whl file?
- How can I use Python PyTorch without CUDA?
See more codes...