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编程之多态用法实例详解
May 19 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
Python在图片中添加文字的两种方法
Apr 29 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
详解django自定义中间件处理
Nov 21 Python
python实现贪吃蛇游戏
Mar 21 Python
Python3之手动创建迭代器的实例代码
May 22 Python
python Django的web开发实例(入门)
Jul 31 Python
浅析matlab中imadjust函数
Feb 27 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
python实现ssh及sftp功能(实例代码)
Mar 16 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
python人民币小写转大写辅助工具
2018/06/20 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
python简单实现AES加密和解密
2019/03/28 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
英国在线药房:Express Chemist
2019/03/28 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
副护士长竞聘演讲稿
2014/04/30 职场文书
干部鉴定材料
2014/05/18 职场文书
英语通知范文
2015/04/22 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python