轻松学Pytorch–环境搭建与基本语法

共 3728字,需浏览 8分钟

 ·

2022-01-24 06:03

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


基本思路选择


以前我用过Caffe,用过tensorflow,最近一直在用pytorch感觉特别好用。所以打算写点我学习的过程跟经验,如果你是一个pytorch的高手自然可以忽略,如果你也打算学习pytorch框架,那就跟我一起学习吧


01.pytorch安装


演示系统环境

  • 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支持正常

测试结果一切正常!


安装的时候你还可以更直接点

pip install pytorch torchvision

就好啦!我知道很多人喜欢用各种python的工具跟IDE做开发,那些都是个人爱好,喜欢就好,但是千万别强迫别人跟你一样!有IDE强迫症!我从开始学习python就一直用pycharm!千万别问我好用不好用,方便不方便!觉得适合自己即可。


02.pytorch基本语法演示


演示了pytorch中基本常量、变量、矩阵操作、CUDA调用,numpy与tensor转化,维度转化,自动梯度等基本知识。代码如下:

from __future__ import print_function
import torch
import numpy as np

print(torch.__version__)

# 定义矩阵
x = torch.empty(22)
print(x)

# 定义随机初始化矩阵
x = torch.randn(22)
print(x)

# 定义初始化为零
x = torch.zeros(33)
print(x)

# 定义数据为tensor
x = torch.tensor([5.12.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(-14)
b = b.view(-14)
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(24))
d = torch.from_numpy(d.reshape(24))
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(15, requires_grad=True)
y = torch.randn(53, requires_grad=True)
z = torch.randn(31, 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.10002.00003.00001.0000])
tensor([12.14.16.18.20.22.24.26.])
tensor([[12.14.16.18.],
        [20.22.24.26.]]) torch.Size([24]) torch.Size([24])

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([24])

 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]])


记录一下,今天是第一篇,以后我争取每周更新一篇到两篇,请大家一起监督,有愿意输出这个方面内容,欢迎一起来努力!


千里之行始于足下!想支持我继续写下去就 点个赞 吧!其它没有要求了!

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报