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 12 Python
python机器人行走步数问题的解决
Jan 29 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python队列Queue的详解
May 10 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
如何基于python把文字图片写入word文档
Jul 31 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Django数据统计功能count()的使用
Nov 30 Python
Django实现简单的分页功能
Feb 22 Python
Python基础学习之奇异的GUI对话框
May 27 Python
python分分钟绘制精美地图海报
Feb 15 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
Protoss魔法科技
2020/03/14 星际争霸
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
浏览器常用高宽的jquery插件
2011/02/24 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 第一步 hello world
2009/09/25 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
python使用zip将list转为json的方法
2018/12/31 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
采购员岗位职责
2013/11/15 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技