热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

10分钟快速入门PyTorch(0)

之前有很多小伙伴私信我说文章思想能看懂,但是pytorch的部分因为没有看过pytorch教程所以一脸懵逼。对此我也表示很无奈,既然大家不愿意去官网看教程,那么我就将我学习pyto

之前有很多小伙伴私信我说文章思想能看懂,但是pytorch的部分因为没有看过pytorch教程所以一脸懵逼。对此我也表示很无奈,既然大家不愿意去官网看教程,那么我就将我学习pytorch的经验写出来,一步一步从0开始让大家学会pytorch,教程比官网的更加简单,同时也增加了更多简单的例子让大家快速上手pytorch,愉快地开始炼丹。

什么?你还不知道pytorch是啥,快点去看看专栏里面的pytorch介绍吧。

推荐在电脑端阅读本篇文章。

环境配置

首先当然是需要安装pytorch了,目前pytorch只支持mac和linux,如果你的电脑是windows,装虚拟机或者双系统。如果想要愉快地炼丹,那么强烈推荐使用linux系统,因为所有的深度学习框架在linux上都有很好的支持,远远好于windows系统,而且linux也没有大家想象中的那么难学,目前linux系统的图形界面让大家上手的时候更加容易。

装完了系统之后就需要安装环境了,首推Anaconda,这是一个科学计算的集成环境,安装完这之后基本所需要的包都有了,而且还提供交互式的jupyter notebook,可以说为我们做实验提供了很好的交互。如果去Anaconda的官网下载速度比较慢,可以去清华镜像下载。

安装完Anaconda之后我们就可以安装pytorch了,进入主页,一步一步来就行了,如果要装GPU版的,需要cuda和cudnn,这个网上有很多教程,可以去看看,如果你只是为了快速上手玩玩pytorch,那么可以不用废时间装GPU版。

pytorch基础

装好了pytorch之后,正式进入我们的教程,pytorch基础部分,这个部分主要是介绍一下pytorch处理的对象以及操作。

Tensor

首先介绍里面最基本的操作对象,tensor

《10分钟快速入门PyTorch (0)》

tensor就是张量的英文,表示多维的矩阵,比如一维就是向量,二维就是一般的矩阵等等,pytorch里面处理的单位就是一个一个的tensor

可以显示的得到其大小

《10分钟快速入门PyTorch (0)》

这个和numpy很相似,同时tensor和numpy.array之间也可以相互转换

《10分钟快速入门PyTorch (0)》
《10分钟快速入门PyTorch (0)》

tensor的运算也很简单,一般的四则运算都是支持的

Variable

pytorch和numpy不一样的地方就来了,就是其提供了自动求导功能,也就是可以自动给你你要的参数的梯度,这个操作又另外一个基本元素提供,Variable

《10分钟快速入门PyTorch (0)》

本质上Variable和Tensor没有区别,不过Variabel会放入一个计算图,然后进行前向传播,反向传播以及自动求导

一个Variable里面包含着三个属性,data,grad和creator,其中creator表示得到这个Variabel的操作,比如乘法或者加法等等,grad表示方向传播的梯度,data表示取出这个Variabel里面的数据

《10分钟快速入门PyTorch (0)》
《10分钟快速入门PyTorch (0)》

这就是一个简单的计算图的例子

神经网络

前面讲了两个操作对象,最后讲一下pytorch里面的模型建立,模型的建立主要依赖于torch.nn,torch.nn包含这个所有神经网络的层的结构

《10分钟快速入门PyTorch (0)》

这就是构建所有神经网络的模板,不管你想构建卷积神经网络还是循环神经网络或者是生成对抗网络都依赖于这个结构

本文所有代码以及后续的教程代码都在github上,强烈推荐进入github下载全部代码进行学习

ok,这次介绍了安装环境,引入了基本的pytorch处理单元,相信大家对pytorch也有了一个基本了解,下节内容预告 线性回归和logistic回归

本文代码已经上传到了github 上

欢迎查看我的知乎专栏,深度炼丹

欢迎访问我的博客


推荐阅读
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 新手指南:在Windows 10上搭建深度学习与PyTorch开发环境
    本文详细记录了一名新手在Windows 10操作系统上搭建深度学习环境的过程,包括安装必要的软件和配置环境变量等步骤,旨在帮助同样初入该领域的读者避免常见的错误。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 如何用GPU服务器运行Python
    如何用GPU服务器运行Python-目录前言一、服务器登录1.1下载安装putty1.2putty远程登录 1.3查看GPU、显卡常用命令1.4Linux常用命令二、 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 图神经网络模型综述
    本文综述了图神经网络(Graph Neural Networks, GNN)的发展,从传统的数据存储模型转向图和动态模型,探讨了模型中的显性和隐性结构,并详细介绍了GNN的关键组件及其应用。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
author-avatar
浪子烦恼猪_309
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有