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中dir函数用法分析
Apr 17 Python
使用Python实现简单的服务器功能
Aug 25 Python
python http接口自动化脚本详解
Jan 02 Python
python中set()函数简介及实例解析
Jan 09 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
基于Python获取城市近7天天气预报
Nov 26 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
什么是Python中的匿名函数
Jun 02 Python
python能自学吗
Jun 18 Python
详解python方法之绑定方法与非绑定方法
Aug 17 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安装攻略:常见问题解答(一)
2006/10/09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
简单学习Python time模块
2016/04/29 Python
python字典操作实例详解
2017/11/16 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python计算二维矩形IOU实例
2020/01/18 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
业务部门经理岗位职责
2014/02/23 职场文书
公益广告语集锦
2014/03/13 职场文书
创业培训计划书
2014/05/03 职场文书
老龄工作先进事迹
2014/08/15 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
关于教师节的广播稿
2014/09/10 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python