建议收藏!从零开始学PyTorch

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:机器学习算法那些事

PyTorch 是一个深度学习框架,旨在实现简单灵活的实验。

自 2017 年初首次推出,PyTorch 很快成为 AI 研究人员的热门选择并受到推崇。PyTorch 有许多优势,如采用 Python 语言、动态图机制、网络构建灵活以及拥有强大的社群等。由于其灵活、动态的编程环境和用户友好的界面,PyTorch 是快速实验的理想选择。

PyTorch 现在是 GitHub 上增长速度第二快的开源项目,在过去的 12 个月里,贡献者增加了 2.8 倍。而且,去年 12 月在 NeurIPS 大会上,PyTorch 1.0 稳定版终于发布。PyTorch 1.0 增加了一系列强大的新功能,大有赶超深度学习框架老大哥 TensorFlow 之势。

因此,学习 PyTorch 大有裨益!

开源地址:

https://github.com/zergtant/pytorch-handbook

建议收藏!从零开始学PyTorch_第1张图片

版本说明

由于 PyTorch 版本更迭,教程的版本会与 PyTorch 版本,保持一致。

12 月 8 日 PyTorch 已经发布 1.0 的稳定版。API 的改动不是很大,本教程已经通过测试,保证能够在 1.0 中正常运行。不过目前看影响不大,因为毕竟内容还不多。v0.4.1 已经新建了分支作为存档,并且该不会再进行更新了。

Pytorch 简介、 Pytorch 环境搭建

1.1 Pytorch 简介

1.1.1 PyTorch 的由来

很多人都会拿 PyTorch 和 Google 的 Tensorflow 进行比较,这个肯定是没有问题的,因为他们是最火的两个深度学习框架了。但是说到 PyTorch,其实应该先说 Torch。

1.1.2 Torch 是什么?

Torch 英译中:火炬

A Tensor library like Numpy, unlike Numpy it has strong GPU support. Lua is a wrapper for Torch (Yes! you need to have a good understanding of Lua), and for that you will need LuaRocks package manager.

Torch 是一个与 Numpy 类似的张量(Tensor)操作库,与 Numpy 不同的是 Torch 对 GPU 支持的很好,Lua 是 Torch 的上层包装。

Torch is not going anywhere. PyTorch and Torch use the same C libraries that contain all the performance: TH, THC, THNN, THCUNN and they will continue to be shared.

We still and will have continued engineering on Torch itself, and we have no immediate plan to remove that.

PyTorch 和 Torch 使用包含所有相同性能的 C 库:TH, THC, THNN, THCUNN,并且它们将继续共享这些库。

这样的回答就很明确了,其实 PyTorch 和 Torch 都使用的是相同的底层,只是使用了不同的上层包装语言。

注:LUA 虽然快,但是太小众了,所以才会有 PyTorch 的出现。

1.1.3 重新介绍 PyTorch

PyTorch is an open source machine learning library for Python, based on Torch, used for applications such as natural language processing. It is primarily developed by Facebook's artificial-intelligence research group, and Uber's "Pyro" software for probabilistic programming is built on it. 

PyTorch 是一个基于 Torch 的 Python 开源机器学习库,用于自然语言处理等应用程序。它主要由 Facebook 的人工智能研究小组开发。Uber 的 "Pyro" 也是使用的这个库。

PyTorch is a Python package that provides two high-level features:



    Tensor computation (like NumPy) with strong GPU acceleration



    Deep neural networks built on a tape-based autograd system

You can reuse your favorite Python packages such as NumPy, SciPy and Cython to extend PyTorch when needed. 

PyTorch 是一个 Python 包,提供两个高级功能:

  • 具有强大的 GPU 加速的张量计算(如 NumPy)

  • 包含自动求导系统的的深度神经网络

1.1.4 对比 PyTorch 和 Tensorflow

没有好的框架,只有合适的框架, 这里有个简单的对比,所以这里就不详细再说了 https://zhuanlan.zhihu.com/p/28636490 并且技术是发展的,这里的对比也不是绝对的,比如 Tensorflow 在 1.5 版的时候就引入了 Eager Execution 机制实现了动态图,PyTorch 的可视化,windows 支持,沿维翻转张量等问题都已经不是问题了。

1.1.5 再次总结

  • PyTorch 算是相当简洁优雅且高效快速的框架

  • 设计追求最少的封装,尽量避免重复造轮子

  • 算是所有的框架中面向对象设计的最优雅的一个,设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法

  • 大佬支持,与 google 的 Tensorflow 类似,FAIR 的支持足以确保 PyTorch 获得持续的开发更新

  • 不错的的文档(相比 FB 的其他项目,PyTorch 的文档简直算是完善了,参考 Thrift),PyTorch 作者亲自维护的论坛 供用户交流和求教问题

  • 入门简单

所以如果以上信息有吸引你的内容,那么请一定要读完这本书:)

1.2 Pytorch 环境搭建

PyTorch 的安装十分简单,根据 PyTorch 官网,对系统选择和安装方式等灵活选择即可。这里以 anaconda 为例,简单的说一下步骤和要点。国内安装 anaconda 建议使用清华或者中科大 [http://mirrors.ustc.edu.cn/help/anaconda.html] 镜像,快的不是一点半点。

1.2.1 安装 Pytorch

anaconda 安装完成后可以开始创建环境,这里以 win10 系统为例。打开 Anaconda Prompt

#pytorch 为环境名,这里创建 python3.6 版。

conda create -n pytorch python=3.6

# 切换到 pytorch 环境

activate pytorch

#安装 GPU 版本,根据 cuda 版本选择 cuda80,cuda92,如果 cuda 是 9.0 版,则不需要

#直接 conda install pytorch -c pytorch 即可

# win 下查看 cuda 版本命令 nvcc -V

conda install pytorch cuda92 -c pytorch

# cpu 版本使用

# conda install pytorch-cpu -c pytorch



# torchvision 是 torch 提供的计算机视觉工具包,后面介绍

pip install torchvision

需要说明的一点是如果使用清华源,可以直接添加 pytorch 源镜像去掉,并且去掉 - c pytorch 这样才能使用镜像源。

验证输入 python 进入

import torch

torch.__version__

# 得到结果 '0.4.1'

1.2.2 配置 Jupyter Notebook

新建的环境是没有安装安装 ipykernel 的所以无法注册到 Jupyter Notebook 中,所以先要准备下环境

#安装 ipykernel

conda install ipykernel

#写入环境

python -m ipykernel install  --name pytorch --display-name "Pytorch for Deeplearning"

下一步就是定制 Jupyter Notebook

#切换回基础环境

activate base

#创建 jupyter notebook 配置文件

jupyter notebook --generate-config

## 这里会显示创建 jupyter_notebook_config.py 的具体位置

打开文件,修改

c.NotebookApp.notebook_dir = '' 默认目录位置

c.NotebookApp.iopub_data_rate_limit = 100000000 这个改大一些否则有可能报错

1.2.3 测试

至此 Pytorch 的开发环境安装完成,可以在开始菜单中打开 Jupyter Notebook 在 New 菜单中创建文件时选择 Pytorch for Deeplearning 创建 PyTorch 的相关开发环境了

1.2.4 问题解决

问题 1:启动 python 提示编码错误

删除 .python_history 来源

问题 2 默认目录设置不起效

打开快捷方式,看看快捷方式是否跟这个截图一样,如果是则删除 % USERPROFILE% 改参数会覆盖掉 notebook_dir 设置,导致配置不起效

建议收藏!从零开始学PyTorch_第2张图片

1.3 PyTorch 深度学习:60 分钟快速入门 (官方)

本章为官方网站的 [Deep Learning with PyTorch: A 60 Minute Blitz] (https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html) 的中文翻译,目前在网上看到所有中文翻译版本都已经过时了,所以才又从新翻译了一遍,确保与官方同步。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

建议收藏!从零开始学PyTorch_第3张图片

建议收藏!从零开始学PyTorch_第4张图片

你可能感兴趣的:(人工智能,python,java,深度学习,编程语言)