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为iOS10生成图标和截屏
Sep 24 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
浅析python的Lambda表达式
Feb 27 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
基于python爬取有道翻译过程图解
Mar 31 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 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运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP与以太坊交互详解
2018/08/24 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
通过cmd进入python的步骤
2020/06/16 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
购房协议书范本
2014/04/11 职场文书
股东合作协议书范本
2014/04/14 职场文书
大型演出策划方案
2014/05/28 职场文书
春游踏青活动方案
2014/08/14 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
2014年财政局工作总结
2014/12/09 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
2019年教师入党申请书
2019/06/27 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android