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通过apply使用元祖和列表调用函数实例
May 26 Python
Python实现二维有序数组查找的方法
Apr 27 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
Python 串口读写的实现方法
Jun 12 Python
python解析xml简单示例
Jun 21 Python
Python中字符串List按照长度排序
Jul 01 Python
Python实现时间序列可视化的方法
Aug 06 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
python接口测试返回数据为字典取值方式
Feb 12 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
Zend公司全球首推PHP认证
2006/10/09 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
微信红包随机生成算法php版
2016/07/21 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
php自定义时间转换函数示例
2016/12/07 PHP
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
DOM 高级编程
2015/05/06 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
关于vue面试题汇总
2018/03/20 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python使用多线程不断刷新网页的方法
2015/03/31 Python
python实现的简单抽奖系统实例
2015/05/22 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
Python绘制动态水球图过程详解
2020/06/03 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
高中毕业自我鉴定
2013/12/19 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
新手入门Mysql--概念
2021/06/18 MySQL
图文详解matlab原始处理图像几何变换
2021/07/09 Python
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL