Pytorch环境搭建与基本语法

 更新时间:2020年06月03日 08:32:02   作者:磐创AI  
这篇文章主要介绍了Pytorch环境搭建与基本语法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

来源 | OpenCV学堂

作者 | gloomyfish

基本思路选择

以前我用过Caffe,用过tensorflow,最近一直在用pytorch感觉特别好用。所以打算写点我学习的过程跟经验,如果你是一个pytorch的高手自然可以忽略,如果你也打算学习pytorch框架,那就跟我一起学习吧,所谓独学而无友,孤陋而寡闻!

pytorch安装

01

演示系统环境

  • Windows10
  • Pytorch1.4
  • CUDA10.0
  • VS2015
  • Python3.6.5

CPU版本

install pytorch torchvision cpuonly -c pytorch

GPU版本

install pytorch torchvision cudatoolkit=10.0 -c pytorch

测试安装是否正常, CUDA支持正常

测试结果一切正常!

安装的时候你还可以更直接点

pip install pytorch torchvision

就好啦!我知道很多人喜欢用各种python的工具跟IDE做开发,那些都是个人爱好,喜欢就好,但是千万别强迫别人跟你一样!有IDE强迫症!我从开始学习python就一直用pycharm!千万别问我好用不好用,方便不方便!觉得适合自己即可。

Pytorch基本语法演示

02

演示了pytorch中基本常量、变量、矩阵操作、CUDA调用,numpy与tensor转化,维度转化,自动梯度等基本知识。代码如下:

from __future__ import print_function
import torch
import numpy as np

print(torch.__version__)

# 定义矩阵
x = torch.empty(2, 2)
print(x)

# 定义随机初始化矩阵
x = torch.randn(2, 2)
print(x)

# 定义初始化为零
x = torch.zeros(3, 3)
print(x)

# 定义数据为tensor
x = torch.tensor([5.1, 2., 3., 1.])
print(x)

# 操作
a = torch.tensor([1.,2.,3.,4.,5.,6.,7.,8.])
b = torch.tensor([11.,12.,13.,14.,15.,16.,17.,18.])
c = a.add(b)
print(c)

# 维度变换 2x4
a = a.view(-1, 4)
b = b.view(-1, 4)
c = torch.add(a, b)
print(c, a.size(), b.size())

# torch to numpy and visa
na = a.numpy()
nb = b.numpy()
print("\na =",na,"\nb =", nb)

# 操作
d = np.array([21.,22.,23.,24.,25.,26.,27.,28.], dtype=np.float32)
print(d.reshape(2, 4))
d = torch.from_numpy(d.reshape(2, 4))
sum = torch.sub(c, d)
print(sum, "\n sum = ", sum.size())

# using CUDA
if torch.cuda.is_available():
 result = d.cuda() + c.cuda()
 print("\n result = ", result)

# 自动梯度
x = torch.randn(1, 5, requires_grad=True)
y = torch.randn(5, 3, requires_grad=True)
z = torch.randn(3, 1, requires_grad=True)
print("\nx=",x, "\ny=",y, "\nz=",z)
xy = torch.matmul(x, y)
xyz = torch.matmul(xy, z)
xyz.backward()
print(x.grad, y.grad, z.grad)

运行输出结果:

1.4.0
tensor([[0., 0.],
        [0., 0.]])
tensor([[-0.4624, -1.1495],
        [ 1.9408, -0.1796]])
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
tensor([5.1000, 2.0000, 3.0000, 1.0000])
tensor([12., 14., 16., 18., 20., 22., 24., 26.])
tensor([[12., 14., 16., 18.],
        [20., 22., 24., 26.]]) torch.Size([2, 4]) torch.Size([2, 4])

a = [[1. 2. 3. 4.]
 [5. 6. 7. 8.]]
b = [[11. 12. 13. 14.]
 [15. 16. 17. 18.]]
[[21. 22. 23. 24.]
 [25. 26. 27. 28.]]
tensor([[-9., -8., -7., -6.],
        [-5., -4., -3., -2.]])
 sum =  torch.Size([2, 4])

 result =  tensor([[33., 36., 39., 42.],
        [45., 48., 51., 54.]], device='cuda:0')

x= tensor([[ 0.3029, -0.4030, -0.9148, -0.9237,  0.7549]], requires_grad=True)
y= tensor([[-0.9032, -0.4092, -0.0682],
        [ 0.3689, -0.9655, -0.1346],
        [ 1.5101,  1.4418,  0.1058],
        [ 1.0259, -1.6011,  0.4881],
        [-0.3989,  0.9156, -1.6290]], requires_grad=True)
z= tensor([[ 1.4343],
        [ 2.2974],
        [-0.0864]], requires_grad=True)
tensor([[-2.2298, -1.6776,  5.4691, -2.2492,  1.6721]]) tensor([[ 0.4344,  0.6959, -0.0262],
        [-0.5781, -0.9260,  0.0348],
        [-1.3121, -2.1017,  0.0790],
        [-1.3249, -2.1222,  0.0798],
        [ 1.0827,  1.7342, -0.0652]]) tensor([[-3.0524],
        [ 1.1164],
        [-1.7437]])

总结

到此这篇关于Pytorch–环境搭建与基本语法的文章就介绍到这了,更多相关Pytorch–环境搭建与基本语法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python获取当前脚本文件夹(Script)的绝对路径方法代码

    Python获取当前脚本文件夹(Script)的绝对路径方法代码

    在本篇文章中小编给各位整理了关于Python获取当前脚本文件夹(Script)的绝对路径实例代码内容,有需要的朋友们学习下。
    2019-08-08
  • python批量将PDF文件转换成图片的实现代码

    python批量将PDF文件转换成图片的实现代码

    这篇文章使用python编写了一个小脚本,目的是为了实现批量将PDF文件转换成图片,文中有详细的实现代码,对我们的学习或工作有一定的帮助,感兴趣的小伙伴可以参考阅读一下
    2023-08-08
  • Python进行图像变换和插值操作详解

    Python进行图像变换和插值操作详解

    这篇文章主要为大家详细介绍了Python进行图像变换和插值操作的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • python本地降级pip的方法步骤

    python本地降级pip的方法步骤

    高版本的pip在使用过程中会出现很多的不兼容问题,而且不留神很容易把pip给升级了,下面这篇文章主要给大家介绍了关于python本地降级pip的方法步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python计时相关操作详解【time,datetime】

    Python计时相关操作详解【time,datetime】

    这篇文章主要介绍了Python计时相关操作,涉及time,datetime模块的使用技巧,包括时间戳、时间差、日期格式等操作方法,需要的朋友可以参考下
    2017-05-05
  • Python Pandas条件筛选功能

    Python Pandas条件筛选功能

    这篇文章主要介绍了Python Pandas条件筛选功能,筛选是在平时的工作中使用非常频繁的功能了,下文详细的相关资料介绍,需要的小伙伴可以参考一下
    2022-03-03
  • 彻底吃透理解Python基础33个关键字详细教程

    彻底吃透理解Python基础33个关键字详细教程

    这篇文章主要为大家介绍了彻底吃透理解Python中33个关键字的详细教程,有需要打好Python基础的同学可以借鉴参考下,希望能成为您成功路上的一块垫脚石
    2021-10-10
  • python numpy 部分排序 寻找最大的前几个数的方法

    python numpy 部分排序 寻找最大的前几个数的方法

    今天小编就为大家分享一篇python numpy 部分排序 寻找最大的前几个数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python中threading开启关闭线程操作

    python中threading开启关闭线程操作

    这篇文章主要介绍了python中threading开启关闭线程操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 详解Selenium-webdriver绕开反爬虫机制的4种方法

    详解Selenium-webdriver绕开反爬虫机制的4种方法

    这篇文章主要介绍了详解Selenium-webdriver绕开反爬虫机制的4种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论