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支持正常
测试结果一切正常!
安装的时候你还可以更直接点
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
猜你喜欢
- QUICKSORT(A, p, r)是快速排序的子程序,调用划分程序对数组进行划分,然后递归地调用QUICKSORT(A, p, r),以完
- 建立cards_main文件:# _*_ coding:utf-8 _*_"""file: cards_mai
- 数据库设计(Database Design)的概念:数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之
- ADODB.Stream在ASP编程中往往用于无组件上传,并且可以指定文件编码,可以应对各种不同的需要。但是在使用ADODB.Stream过
- 本文实例讲述了Python使用crontab模块设置和清除定时任务操作。分享给大家供大家参考,具体如下:centos7下安装Python的p
- 日志日志是跟踪软件运行时所发生的事件的一种方法。软件开发者在代码中调用日志函数,表明发生了特定的事件。事件由描述性消息描述,该描述性消息可以
- 键盘事件废话不多说直接上包from selenium.webdriver.common.keys import Keys1、删除键 BACK
- 官方网站 : www.python.orgPython is an interpreted, interactive, object-ori
- 在抓取网络数据的时候,有时会用正则对结构化的数据进行提取,比如 href="https://www.1234.com"等
- pandas loc的指定条件索引(布尔索引)pandas中的loc不仅仅可以用于直接的标签的索引,也可以用于指定条件的索引。1.准备数据首
- 还是一个关于checkbox的一个普通的效果,就是根据你勾选的checkbox,列出你选择了哪些值演示代码:<!DOCTYPE htm
- 本文实例讲述了Python实现的简单线性回归算法。分享给大家供大家参考,具体如下:用python实现R的线性模型(lm)中一元线性回归的简单
- 有时候要通过asp代码在数据库中创建表和列,下面的就是这些操作的函数。1.检测表是否存在tbName 检测的表的名称dbTp 数据库的类型1
- Oblog4.6 ACCESS版转换为UCenterHome1.5的全过程1、 说明:
- PyQt5窗口布局控件QStackedWidget介绍QTackedWidget是一个堆栈窗口控件,可以填充一些小控件,但是同一时间只有一个
- 系统环境centos7python2.7先在操作系统安装expect[root@V71 python]# vi 3s.py#!/usr/bi
- Django 简介Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初
- 本文实例讲述了python使用自定义user-agent抓取网页的方法。分享给大家供大家参考。具体如下:下面python代码通过urllib
- python实现四舍五入""" 四舍五入 :param
- 翻译整理:Young.J;官方网站:http://jquery.comjQuery是一款同prototype一样优秀js开发库类,特别是对c