PyTorch 超全资源列表,看这篇就够了

栏目: Python · 发布时间: 5年前

内容简介: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 超全资源列表,看这篇就够了

资源列表:

  • 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 份资料。

PyTorch 超全资源列表,看这篇就够了

涉及的内容包括:seq2seq, speech, quick-nlp 等。不仅包含了 PyToch 在 NLP 的快速入门,也包含了最新的 BERT 的 PyTorch 实现。

2. Computer Vision

这部分主要介绍 PyTorch 在计算机视觉 CV 领域的应用及其相关资源,总共包含了 18 份资料。

PyTorch 超全资源列表,看这篇就够了

内容上涉及了近年来 CV 领域非常火热的研究,如经典的 LSTM 的 PyTorch 实现,流行的 face-alignment 等。

3. Probabilistic/Generative Libraries

这部分主要介绍 PyTorch 一些概率/生成库,总共包含了 8 份资料。

PyTorch 超全资源列表,看这篇就够了

4. Other libraries

这部分主要介绍 PyTorch 其它的一些库,总共包含了 101 份资料,非常全面。

PyTorch 超全资源列表,看这篇就够了

这部分可以当作字典来用,平时需要使用到 PyTorch 的一些其它相关库,可在这里查询。

Tutorials & examples

这部分是硬核内容,专门讲了 PyTorch 额详细教程并配备相关的实例。总共包含了 58 份资源。

PyTorch 超全资源列表,看这篇就够了

例如 pytorch-tutorial,这里获星 10k+。从 PyTorch 的基础语法知识、张量介绍起,然后是简单的实例、进阶实例等。整个教程学习梯度清晰,难易程度适中,便于进阶提升。

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 份资源。

PyTorch 超全资源列表,看这篇就够了

例如有趣的 BigGAN-PyTorch,论文地址:

https://arxiv.org/abs/1809.11096

PyTorch 超全资源列表,看这篇就够了

Pytorch elsewhere

这部分资源主要收集了关于 PyTorch 的其它内容,总共包含了 35 份资料。

PyTorch 超全资源列表,看这篇就够了

最后,希望这份资源对你有所帮助!

更多 AI 干货,请关注公众号:AI有道!

PyTorch 超全资源列表,看这篇就够了


以上所述就是小编给大家介绍的《PyTorch 超全资源列表,看这篇就够了》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C程序设计语言

C程序设计语言

Brian W. Kernighan、Dennis M. Ritchie / 机械工业出版社 / 2006-8-1 / 35.00元

在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书是C语言的设计者之一Dennis M.Ritchie和著名计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。本书第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引......一起来看看 《C程序设计语言》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具