Pytorch环境搭建与基本语法


Posted in Python onJune 03, 2020

来源 | 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支持正常

Pytorch环境搭建与基本语法

测试结果一切正常!

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

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 相关文章推荐
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python查看列的唯一值方法
Jul 17 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
信号生成及DFT的python实现方式
Feb 25 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
python mock测试的示例
Oct 19 Python
python连接mongodb数据库操作数据示例
Nov 30 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 Python
Python下opencv库的安装过程及问题汇总
Jun 11 Python
如何学习Python time模块
Jun 03 #Python
使用openCV去除文字中乱入的线条实例
Jun 02 #Python
Python能做什么
Jun 02 #Python
什么是Python中的匿名函数
Jun 02 #Python
学习python需要有编程基础吗
Jun 02 #Python
python中if及if-else如何使用
Jun 02 #Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 #Python
You might like
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
jquery获取input的value问题说明
2010/08/19 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python 实现多线程下载视频的代码
2019/11/15 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
使用python实现名片管理系统
2020/06/18 Python
python实现批处理文件
2020/07/28 Python
工作中的自我评价如何写好
2013/10/28 职场文书
小学门卫岗位职责
2013/12/17 职场文书
新农村建设汇报材料
2014/08/15 职场文书
家长学校培训材料
2014/08/20 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
小学运动会加油词
2015/07/18 职场文书
小学教代会开幕词
2016/03/04 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书