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实现文本文件合并
Dec 29 Python
Python处理JSON数据并生成条形图
Aug 05 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
python实现K最近邻算法
Jan 29 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
python reverse反转部分数组的实例
Dec 13 Python
实例介绍Python中整型
Feb 11 Python
Python基于time模块表示时间常用方法
Jun 18 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
Python reques接口测试框架实现代码
Jul 28 Python
Manjaro、pip、conda更换国内源的方法
Nov 17 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
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
开启PHP的伪静态模式
2015/12/31 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
js opener的使用详解
2014/01/11 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
利用python发送和接收邮件
2016/09/27 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
Python调用Windows命令打印文件
2020/02/07 Python
Python递归实现打印多重列表代码
2020/02/27 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
3个CCIE对一个工程师的面试题
2012/05/06 面试题
餐厅总经理岗位职责
2013/12/31 职场文书
学生会主席事迹材料
2014/01/28 职场文书
安全生产月宣传标语
2014/10/06 职场文书
2015年招聘工作总结
2014/12/12 职场文书
推广普通话的宣传语
2015/07/13 职场文书