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 21 Python
python中int与str互转方法
Jul 02 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
Python实现多属性排序的方法
Dec 05 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
python爬虫请求头设置代码
Jul 28 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 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+ACCESS 文章管理程序代码
2010/06/21 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
Redis构建分布式锁
2017/03/28 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
基于js中document.cookie全面解析
2017/09/14 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
js实现全选和全不选
2020/07/28 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python break语句详解
2014/03/11 Python
Python 3中的yield from语法详解
2017/01/18 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python语言基本语句用法总结
2019/06/11 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
自主招生自荐信指南
2014/02/04 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
视光学专业自荐信
2014/06/24 职场文书