撒花!PyTorch 官方教程中文版正式上线,激动人心的大好事!

简介: 撒花!PyTorch 官方教程中文版正式上线,激动人心的大好事!

什么是 PyTorch?其实 PyTorch 可以拆成两部分:Py+Torch。Py 就是 Python,Torch 是一个有大量机器学习算法支持的科学计算框架。PyTorch 的前身是Torch,但是 Torch 是基于 Lua 语言。Lua 简洁高效,但由于其过于小众,用的人不是很多,以至于很多人听说要掌握 Torch 必须新学一门语言就望而却步。考虑到 Python 在人工智能领域的领先地位,以及其生态完整性和接口易用性,几乎任何框架都不可避免地要提供 Python 接口。终于,在 2017 年,Torch 的幕后团队使用 Python 重写了 Torch 的很多内容,推出了 PyTorch,并提供了 Python 接口。此后,PyTorch 成为最流行的深度学习框架之一。


近几年来,PyTorch 呈现大火的趋势,除了Facebook外,PyTorch 已经被 Twitter、CMU 和 Salesforce 等多个机构使用。


image.png

就在刚刚,激动人心的好消息:PyTorch 官方教程中文版正式发布啦!


教程地址:


http://pytorch123.com/


教程介绍


本文档主要使用于 PyTorch 入门学者,主要参考 PyTorch 官方文档。官方教程包含了 PyTorch 介绍,安装教程;60 分钟快速入门教程,可以迅速从小白阶段完成一个分类器模型;计算机视觉常用模型,方便基于自己的数据进行调整,不再需要从头开始写;自然语言处理模型,聊天机器人,文本生成等生动有趣的项目。


总而言之:如果你想了解一下 PyTorch,可以看介绍部分。如果你想快速入门 PyTorch,可以看 60 分钟快速入门。如果你想解决计算机视觉问题,可以看 CV 部分。如果你想解决自然语言处理问题,可以看 NLP 部分。


教程内容


整个教程共包含了 7 部分,内容由简单到复杂,适合不同层次的学习要求。下面分别进行介绍。


1. PyTorch 之简介与下载


  • PyTorch 简介
  • PyTorch 环境搭建
    - 安装 Anaconda 3.5
    - 安装 PyTorch & torchvision

image.png

Anaconda Navigator


2. PyTorch 之 60min 入门教程


  • PyTorch 入门
  • PyTorch 自动微分
  • PyTorch 神经网络
  • PyTorch 图像分类器
  • PyTorch 数据并处理


原理解释:


image.png

3. PyTorch 之入门强化教程


  • 数据加载和处理
  • PyTorch 小试牛刀
  • 迁移学习
  • 混合前端的 seq2seq 模型部署
  • 保存和加载模型


image.png

def train_model(model, criterion, optimizer, scheduler, num_epochs=25):
    since = time.time()
    best_model_wts = copy.deepcopy(model.state_dict())
    best_acc = 0.0
    for epoch in range(num_epochs):
        print('Epoch {}/{}'.format(epoch, num_epochs - 1))
        print('-' * 10)
        # 每个epoch都有一个训练和验证阶段
        for phase in ['train', 'val']:
            if phase == 'train':
                scheduler.step()
                model.train() # Set model to training mode
            else:
                model.eval() # Set model to evaluate mode
            running_loss = 0.0
            running_corrects = 0
            # 迭代数据.
            for inputs, labels in dataloaders[phase]:
                inputs = inputs.to(device)
                labels = labels.to(device)
                # 零参数梯度
                optimizer.zero_grad()
                # 前向
                # track history if only in train
                with torch.set_grad_enabled(phase == 'train'):
                    outputs = model(inputs)
                    _, preds = torch.max(outputs, 1)
                    loss = criterion(outputs, labels)
                    # 后向+仅在训练阶段进行优化
                    if phase == 'train':
                        loss.backward()
                        optimizer.step()
                # 统计
                running_loss += loss.item() * inputs.size(0)
                running_corrects += torch.sum(preds == labels.data)
            epoch_loss = running_loss / dataset_sizes[phase]
            epoch_acc = running_corrects.double() / dataset_sizes[phase]
            print('{} Loss: {:.4f} Acc: {:.4f}'.format(
                phase, epoch_loss, epoch_acc))
            # 深度复制mo
            if phase == 'val' and epoch_acc > best_acc:
                best_acc = epoch_acc
                best_model_wts = copy.deepcopy(model.state_dict())
        print()
    time_elapsed = time.time() - since
    print('Training complete in {:.0f}m {:.0f}s'.format(
        time_elapsed // 60, time_elapsed % 60))
    print('Best val Acc: {:4f}'.format(best_acc))
    # 加载最佳模型权重
    model.load_state_dict(best_model_wts)
    return model

4. PyTorch 之图像篇


  • 微调基于 torchvision 0.3的目标检测模型
  • 微调 Torchvision 模型
  • 空间变换器网络
  • 使用 PyTorch 进行 Neural-Transfer
  • 生成对抗示例
  • 使用ONNX将模型转移至Caffe2和移动端


image.png

image.png

5. PyTorch 之文本篇


  • 聊天机器人教程
  • 使用字符级 RNN 生成名字
  • 使用字符级 RNN 进行名字分类
  • 在深度学习和 NLP 中使用 Pytorch
  • 使用 Sequence2Sequence 网络和注意力进行翻译


image.png

> hello?
Bot: hello .
> where am I?
Bot: you re in a hospital .
> who are you?
Bot: i m a lawyer .
> how are you doing?
Bot: i m fine .
> are you my friend?
Bot: no .
> you're under arrest
Bot: i m trying to help you !
> i'm just kidding
Bot: i m sorry .
> where are you from?
Bot: san francisco .
> it's time for me to leave
Bot: i know .
> goodbye
Bot: goodbye .

6. PyTorch 之生成对抗网络


  • DCGAN教程


本教程通过一个例子来对 DCGANs 进行介绍。我们将会训练一个生成对抗网络(GAN)用于在展示了许多真正的名人的图片后产生新的名人。


image.png

image.png


7. PyTorch 之强化学习


  • 强化学习(DQN)教程


本教程介绍如何使用PyTorch从OpenAI Gym中的 CartPole-v0 任务上训练一个Deep Q Learning (DQN) 代理。


image.png

总的来说,这是一份非常不错的 PyTorch 中文教程!最后,再次附上教程在线网址:


http://pytorch123.com/

相关文章
|
9天前
|
Android开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(2)
PyTorch 2.2 中文官方教程(二十)
39 0
PyTorch 2.2 中文官方教程(二十)(2)
|
9天前
|
iOS开发 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(二十)(1)
PyTorch 2.2 中文官方教程(二十)
40 0
PyTorch 2.2 中文官方教程(二十)(1)
|
PyTorch 算法框架/工具 并行计算
PyTorch 2.2 中文官方教程(十九)(4)
PyTorch 2.2 中文官方教程(十九)
24 0
|
9天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(4)
PyTorch 2.2 中文官方教程(十八)
51 1
|
9天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十八)(3)
PyTorch 2.2 中文官方教程(十八)
20 1
PyTorch 2.2 中文官方教程(十八)(3)
|
9天前
|
并行计算 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十七)(4)
PyTorch 2.2 中文官方教程(十七)
22 2
PyTorch 2.2 中文官方教程(十七)(4)
|
9天前
|
PyTorch 算法框架/工具 机器学习/深度学习
PyTorch 2.2 中文官方教程(十七)(2)
PyTorch 2.2 中文官方教程(十七)
35 1
PyTorch 2.2 中文官方教程(十七)(2)
|
9天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十五)(1)
PyTorch 2.2 中文官方教程(十五)
45 1
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十四)(4)
PyTorch 2.2 中文官方教程(十四)
49 1
PyTorch 2.2 中文官方教程(十四)(4)
|
10天前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十四)(2)
PyTorch 2.2 中文官方教程(十四)
47 1