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 16 Python
python求pi的方法
Oct 08 Python
python继承和抽象类的实现方法
Jan 14 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
Python中特殊函数集锦
Jul 27 Python
python Pillow图像处理方法汇总
Oct 16 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
在python image 中实现安装中文字体
May 16 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
Python是怎样处理json模块的
Jul 16 Python
Python ConfigParser模块的使用示例
Oct 12 Python
python中四舍五入的正确打开方式
Jan 18 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防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Python os.access()用法实例
2019/02/18 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
护理自我鉴定范文
2013/10/06 职场文书
高二历史教学反思
2014/01/25 职场文书
小组名称和口号
2014/06/09 职场文书
2014年民政工作总结
2014/11/26 职场文书
学校社团活动总结
2015/05/07 职场文书