内容简介:PyTorch 如今已经称为最受欢迎的深度学习框架之一了!丰富的 PyTorch 教程,完备的 PyTorch 学习路线往往能帮助我们事半功倍!今天给大家推荐一个比较完备的 PyTorch 资源列表,内容涉及 PyToch 基本知识,PyToch 在 CV、NLP 领域的应用,PyTorch 教程、PyTorch 相关论文等。首先放上该项目地址:
PyTorch 如今已经称为最受欢迎的深度学习框架之一了!丰富的 PyTorch 教程,完备的 PyTorch 学习路线往往能帮助我们事半功倍!
今天给大家推荐一个比较完备的 PyTorch 资源列表,内容涉及 PyToch 基本知识,PyToch 在 CV、NLP 领域的应用,PyTorch 教程、PyTorch 相关论文等。
首先放上该项目地址:
https://github.com/bharathgs/Awesome-pytorch-list
该项目非常受欢迎,目前已经收获了 6000+ 的 stars 了。
资源列表:
- Pytorch & related libraries
- NLP & Speech Processing
-
Computer Vision
-
Probabilistic/Generative Libraries
-
Other libraries
-
Tutorials & examples
-
Paper implementations
-
Pytorch elsewhere
下面,我们来分别介绍这份 PyTorch 资源。
PyTorch & related libraries
这部分主要介绍了 PyTorch 及相关的库函数。
1. NLP & Speech Processing
这部分主要介绍 PyTorch 在自然语言处理 NLP 领域的应用及其相关资源,总共包含了 33 份资料。
涉及的内容包括:seq2seq, speech, quick-nlp 等。不仅包含了 PyToch 在 NLP 的快速入门,也包含了最新的 BERT 的 PyTorch 实现。
2. Computer Vision
这部分主要介绍 PyTorch 在计算机视觉 CV 领域的应用及其相关资源,总共包含了 18 份资料。
内容上涉及了近年来 CV 领域非常火热的研究,如经典的 LSTM 的 PyTorch 实现,流行的 face-alignment 等。
3. Probabilistic/Generative Libraries
这部分主要介绍 PyTorch 一些概率/生成库,总共包含了 8 份资料。
4. Other libraries
这部分主要介绍 PyTorch 其它的一些库,总共包含了 101 份资料,非常全面。
这部分可以当作字典来用,平时需要使用到 PyTorch 的一些其它相关库,可在这里查询。
Tutorials & examples
这部分是硬核内容,专门讲了 PyTorch 额详细教程并配备相关的实例。总共包含了 58 份资源。
例如 pytorch-tutorial,这里获星 10k+。从 PyTorch 的基础语法知识、张量介绍起,然后是简单的实例、进阶实例等。整个教程学习梯度清晰,难易程度适中,便于进阶提升。
下面是使用 PyTorch 实现一个线性回归的简单例子:
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
# Hyper-parameters
input_size = 1
output_size = 1
num_epochs = 60
learning_rate = 0.001
# Toy dataset
x_train = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],
[9.779], [6.182], [7.59], [2.167], [7.042],
[10.791], [5.313], [7.997], [3.1]], dtype=np.float32)
y_train = np.array([[1.7], [2.76], [2.09], [3.19], [1.694], [1.573],
[3.366], [2.596], [2.53], [1.221], [2.827],
[3.465], [1.65], [2.904], [1.3]], dtype=np.float32)
# Linear regression model
model = nn.Linear(input_size, output_size)
# Loss and optimizer
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
# Train the model
for epoch in range(num_epochs):
# Convert numpy arrays to torch tensors
inputs = torch.from_numpy(x_train)
targets = torch.from_numpy(y_train)
# Forward pass
outputs = model(inputs)
loss = criterion(outputs, targets)
# Backward and optimize
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 5 == 0:
print ('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))
# Plot the graph
predicted = model(torch.from_numpy(x_train)).detach().numpy()
plt.plot(x_train, y_train, 'ro', label='Original data')
plt.plot(x_train, predicted, label='Fitted line')
plt.legend()
plt.show()
# Save the model checkpoint
torch.save(model.state_dict(), 'model.ckpt')
下面是使用 PyTorch 实现一个 CNN 模型的稍复杂例子:
import torch
import torch.nn as nn
import torchvision
import torchvision.transforms as transforms
# Device configuration
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
# Hyper parameters
num_epochs = 5
num_classes = 10
batch_size = 100
learning_rate = 0.001
# MNIST dataset
train_dataset = torchvision.datasets.MNIST(root='../../data/',
train=True,
transform=transforms.ToTensor(),
download=True)
test_dataset = torchvision.datasets.MNIST(root='../../data/',
train=False,
transform=transforms.ToTensor())
# Data loader
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
batch_size=batch_size,
shuffle=True)
test_loader = torch.utils.data.DataLoader(dataset=test_dataset,
batch_size=batch_size,
shuffle=False)
# Convolutional neural network (two convolutional layers)
class ConvNet(nn.Module):
def __init__(self, num_classes=10):
super(ConvNet, self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(1, 16, kernel_size=5, stride=1, padding=2),
nn.BatchNorm2d(16),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2, stride=2))
self.layer2 = nn.Sequential(
nn.Conv2d(16, 32, kernel_size=5, stride=1, padding=2),
nn.BatchNorm2d(32),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2, stride=2))
self.fc = nn.Linear(7*7*32, num_classes)
def forward(self, x):
out = self.layer1(x)
out = self.layer2(out)
out = out.reshape(out.size(0), -1)
out = self.fc(out)
return out
model = ConvNet(num_classes).to(device)
# Loss and optimizer
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
# Train the model
total_step = len(train_loader)
for epoch in range(num_epochs):
for i, (images, labels) in enumerate(train_loader):
images = images.to(device)
labels = labels.to(device)
# Forward pass
outputs = model(images)
loss = criterion(outputs, labels)
# Backward and optimize
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (i+1) % 100 == 0:
print ('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'
.format(epoch+1, num_epochs, i+1, total_step, loss.item()))
# Test the model
model.eval() # eval mode (batchnorm uses moving mean/variance instead of mini-batch mean/variance)
with torch.no_grad():
correct = 0
total = 0
for images, labels in test_loader:
images = images.to(device)
labels = labels.to(device)
outputs = model(images)
_, predicted = torch.max(outputs.data, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()
print('Test Accuracy of the model on the 10000 test images: {} %'.format(100 * correct / total))
# Save the model checkpoint
torch.save(model.state_dict(), 'model.ckpt')
Paper implementations
这部分的内容很难得,主要收集了使用 PyTorch 实现的各种深度学习相关论文,节约了大家收集、查找论文的时间。这部分总共包含了 316 份资源。
例如有趣的 BigGAN-PyTorch,论文地址:
https://arxiv.org/abs/1809.11096
Pytorch elsewhere
这部分资源主要收集了关于 PyTorch 的其它内容,总共包含了 35 份资料。
最后,希望这份资源对你有所帮助!
更多 AI 干货,请关注公众号:AI有道!
以上所述就是小编给大家介绍的《PyTorch 超全资源列表,看这篇就够了》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
An Introduction to Probability Theory and Its Applications
William Feller / Wiley / 1991-1-1 / USD 120.00
Major changes in this edition include the substitution of probabilistic arguments for combinatorial artifices, and the addition of new sections on branching processes, Markov chains, and the De Moivre......一起来看看 《An Introduction to Probability Theory and Its Applications》 这本书的介绍吧!