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错误和解决方法汇总整理
Jun 03 Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
深入解析Python中的上下文管理器
Jun 28 Python
详解python脚本自动生成需要文件实例代码
Feb 04 Python
TensorFlow损失函数专题详解
Apr 26 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
python之yield和Generator深入解析
Sep 18 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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
使用数据库保存session的方法
2006/10/09 PHP
php minixml详解
2008/07/19 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
javascript中的有名函数和无名函数
2007/10/17 Javascript
jquery中radio checked问题
2015/03/16 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript File分段上传
2016/03/10 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
Python之列表实现栈的工作功能
2019/01/28 Python
【python】matplotlib动态显示详解
2019/04/11 Python
通过python检测字符串的字母
2020/02/18 Python
Python3获取cookie常用三种方案
2020/10/05 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
护士岗位职责
2014/02/16 职场文书
党员违纪检讨书
2014/02/18 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
小学生环保标语
2014/06/13 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python