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实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
自己编程中遇到的Python错误和解决方法汇总整理
Jun 03 Python
python计算圆周率pi的方法
Jul 11 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python正规则表达式学习指南
Aug 02 Python
python中模块的__all__属性详解
Oct 26 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
pandas通过索引进行排序的示例
Nov 16 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
浅析Python实现DFA算法
Jun 26 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
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
js+css在交互上的应用
2010/07/18 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
np.dot()函数的用法详解
2020/01/17 Python
keras 多任务多loss实例
2020/06/22 Python
Python自带的IDE在哪里
2020/07/01 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
学生自我鉴定范文
2013/10/04 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
文明之星事迹材料
2014/05/09 职场文书
旅游节目策划方案
2014/05/26 职场文书
五心教育心得体会
2014/09/04 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
就业意向书范本
2015/05/11 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书