Pytorch环境搭建与基本语法

作者:磐创AI 时间:2021-04-22 21:57:47 

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

来源:http://mp.weixin.qq.com/s?__biz=MzAxMjMwODMyMQ==&mid=2456346946&idx=2&sn=6e2fe2b7233cae91eb3da519452c2d7a

标签:Pytorch,环境搭建
0
投稿

猜你喜欢

  • python数据类型强制转换实例详解

    2022-02-08 05:22:43
  • javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)

    2024-04-16 09:14:08
  • python多线程http压力测试脚本

    2022-12-31 16:48:37
  • asp将数据库中的信息存储至XML文件中

    2007-09-19 12:54:00
  • Python paramiko 模块浅谈与SSH主要功能模拟解析

    2023-10-01 11:06:28
  • Python画图常用命令大全(详解)

    2023-04-17 15:20:16
  • Python轻松管理与操作文件的技巧分享

    2021-11-19 14:42:12
  • php中数字、字符与对象判断函数用法实例

    2023-07-24 03:27:08
  • javascript getElementByTagName的使用

    2024-04-10 14:00:36
  • MySQL数据库中删除重复记录的方法总结[推荐]

    2024-01-13 07:13:45
  • PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)

    2023-11-18 08:17:16
  • 使用Python微信库itchat获得好友和群组已撤回的消息

    2021-03-25 08:27:44
  • String与string的区别(注意大小写)

    2023-06-28 22:04:13
  • 浅议 Web 网页 Form 表单设计技巧

    2007-10-09 13:05:00
  • python实现CTC以及案例讲解

    2023-04-18 22:04:13
  • 阿里巴巴技术文章分享 Javascript继承机制的实现

    2024-04-30 09:59:16
  • 关注oblog 关注xml-rpc 自己开发客户端小记

    2009-10-04 20:27:00
  • Python的Django应用程序解决AJAX跨域访问问题的方法

    2023-08-07 16:00:24
  • 用python实现批量重命名文件的代码

    2023-01-02 09:09:20
  • JS实现网页滚动条感应鼠标变色的方法

    2024-04-18 10:52:44
  • asp之家 网络编程 m.aspxhome.com