本文只是学习做的笔记,不喜忽喷。

Pytorch的安装

安装地址介绍:https://pytorch.org/
带GPU的安装:

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

不带GPU的安装

conda install pytorch torchvision torchaudio cpuonly -c pytorch

安装之后在ipython中验证

import torch
torch.__version__

注意:安装模块的时候使用的是pytorch,在代码中使用的是torch。

pytorch的使用

1、张量Tensor

各种数值数据都可以称为张量。

  • 常数:scaler:0阶张量
  • 向量:vector:1阶张量
  • 矩阵:matrix:2阶张量
  • 3阶张量…n阶张量

2、张量的创建方法

  • 使用python中的列表或者序列创建tensor
torch.tensor([1,2,3])
  • 使用numpy中的数组创建tensor
torch.tensor(np.array([[1,2,3],[4,5,6]]))
  • 使用torch中的api创建tensor
# 创建3行4列的空的tensor
torch.empty([3,4])
# 创建3行4列的全为0的tensor
torch.zeros([3,4])
# 创建3行4列的全为1的tensor
torch.ones([3,4])
# 创建3行4列的随机值的tensor,随机值的区间为[0,1)
torch.rand([3,4])
# 创建3行4列的随机整数的tensor,随机区间为[lower,high)
torch.randint(low = 0,high = 10,size = [3,4])
# 创建3行4列的随机整数的tensor,随机值的分布均值为0,方差为1
torch.randn([3,4])

3、pytorch中tensor的常用方法

  1. 获取tensor中的数据(当tensor中只有一个元素可用时):tensor.item()
t1 = torch.tensor(np.array(1))
t1.item()
  1. 转化为numpy数组
t2 = torch.tensor(np.array([[1,2,3],[4,5,6]]))
t2.numpy()
  1. 获取形状:tensor.size()
# size既可以获取整个tensor的形状,也可以获取某一维度的形状
t2.size()
t2.size(3)# 2为下标
# shape值可以获取整个tensor的形状
t2.shape
  1. 形状改变:tensor.view((3,4)),类似numpy 中的reshape,是一种浅拷贝,仅仅是形状发生改变,不会改变原来结果的值,会返回一个结果。
  2. 获取维数:tensor.dim()
  3. 获取最大/小值:tensor.max()、tensor.min()
  4. 转置:tensor.transpose()
    transpose在转置是对二维数组可以直接进行转置,对于三维数组需要写清楚哪一列。
    二维的时候tensor.transpose()可以换成tensor.t()
t3 = torch.tensor(np.arange(24).reshape(2,3,4))
# 结果为:tensor([[[ 0,  1,  2,  3],
#         [ 4,  5,  6,  7],
#         [ 8,  9, 10, 11]],
#
#        [[12, 13, 14, 15],
#         [16, 17, 18, 19],
#         [20, 21, 22, 23]]], dtype=torch.int32)
t3.size()
torch.Size([2, 3, 4])
t3.transpose(0,1)# 对第0维和第1维进行转置
# permute将tensor的维度换位
t3.permute(2,1,0)# 交换0维和2维数据
  1. tensor[1,3]获取tensor中第一行第三列的值
  2. tensor[1,3]=5 是对tensor第一行第三列的位置进行赋值5

4、数据类型

tensor中的数据类型非常多,常见的如下:

具体可以看pytorch的官方文档

  1. 获取tensor的数据类型:tensor.dtype
  2. 创建数据的时候指定类型
torch.ones([2,3],dtype=torch.float32)
torch.tensor([2,3],dtype=torch.float32)# 此处必须是小写的tensor,后面的dtype可以指定数据类型
torch.LongTensor()
torch.FloatTensor()
  1. 类型的修改
tensor.float()/long()/int()

5、tensor的其他操作

  1. tensor的加法
x = torch.ones(5,3,dtype=torch.float)
y = torch.rand(5,3)
# 第一种相加
x+y
# 第二种相加
torch.add(x,y)
# 第三种相加
x.add(y)
# 带下划线的方法会对x进行就地修改
x.add_(y)
# tensor和数字进行操作
x+10
  1. CUDA中的tensor
    torch.cuda这个模块增加了CUDA tensor的支持,能够在cpu和gpu上使用相同的方法操作tensor。
    通过.to方法能够把一个tensor转移到另外一个设备(比如从CPU转到GPU)
# 判断电脑是否支持GPU
torch.cuda.is_available()
# 判断GPU是否可用,如果可用的话就使用GPU,否则使用CPU的tensor
# cuda:0中的数字0指的是在电脑中有多个GPU时选择使用哪一个
# 下面是实例化一个device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# 下面可以使用.to进行转换,通过实例化一个CPU的device或者GPU的device,然后进行转换
a = torch.zeros([2,3])
a.to(device)

Pytorch基本操作相关推荐

  1. Pytorch基本操作(5)——torchvision中的Dataset以及Dataloader

    简介 在学习李沐在B站发布的<动手学深度学习>PyTorch版本教学视频中发现在操作使用PyTorch方面有许多地方看不懂,往往只是"动手"了,没有动脑.所以打算趁着寒 ...

  2. [基本功]pytorch基本操作教程

    文章目录 数据加载 Dataset Dataloader 可视化--TensorBoard Transform ToTensor Nomalize Resize RandomCrop torch.nn ...

  3. 深度学习实验1:pytorch实践与前馈神经网络

    深度学习实验1:pytorch实践与前馈神经网络 1.pytorch基本操作 1.使用

  4. 深度学习课件-实验1_PyTorch基本操作实验

    文章目录 一.Pytorch基本操作考察 1.1 1.2 1.3 二.动手实现 logistic 回归 2.1 2.2 三.动手实现softmax回归 3.1 3.2 一.Pytorch基本操作考察 ...

  5. 人工智能技术进阶路线

    人工智能初阶 数学基础 微积分 线性代数 朴素概率论 朴素统计学理论 朴素优化理论 编程基础 Python基础语法 Pandas基础操作 SQL基本操作 Spark基本操作 PyTorch基本操作 T ...

  6. 【英文文本分类实战】之一——实战项目总览

    [1] 总览   [英文文本分类实战]系列共六篇文章:   [英文文本分类实战]之一--实战项目总览   [英文文本分类实战]之二--数据集挑选与划分   [英文文本分类实战]之三--数据清洗   [ ...

  7. 机器学习管道模型_使用连续机器学习来运行您的ml管道

    机器学习管道模型 Vaithy NarayananVaithy Narayanan Follow跟随 Jul 15 7月15 使用连续机器学习来运行ML管道 (Using Continuous Mac ...

  8. 手动以及使用torch.nn实现logistic回归和softmax回归

    其他文章 手动以及使用torch.nn实现logistic回归和softmax回(当前文章) 手动以及使用torch.nn实现前馈神经网络实验 文章目录 任务 一.Pytorch基本操作考察 1.1 ...

  9. pytorch方法,Tensor及其基本操作_重点

    由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...

  10. PyTorch | (3)Tensor及其基本操作

    PyTorch | (1)初识PyTorch PyTorch | (2)PyTorch 入门-张量 PyTorch | (3)Tensor及其基本操作 Tensor attributes: 在tens ...

最新文章

  1. modlesim使用
  2. ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
  3. VC++动态链接库编程之MFC DLL
  4. vue“路由懒加载” 技术,让网页快速加载 (优化篇)
  5. oracle truncsysdate_oracle trunc截断日期函数
  6. DISPLAY变量和xhost(原创)
  7. Kanban VS Scrum:哪个是最好的敏捷项目管理框架
  8. Linux 命令(138)—— nc 命令
  9. Java 技术是什么?
  10. 基于OMCS的远程桌面实现远程控制地面站
  11. 实现DEDE转跳属性文档在模板上调用出转跳地址
  12. MyEclipse中用Maven创建Web项目(亲测有效)
  13. java歌词解析器_Java LRC 歌词解析
  14. c++实现压缩解压 zip文件
  15. 【股票】股票是什么?什么情况下股票会涨?
  16. Mysql5.1大表分区效率测试
  17. 华人泰斗黄煦涛逝世,贤伉俪深情六十载
  18. 大一新生必看,自学必看,里昂详解数据结构之链表
  19. Buying Hay 购买干草 完全背包
  20. Android 之BlockingQueue

热门文章

  1. APP_FIELD设置Item运行时行为
  2. 第二代支付系统专题之报文篇(二)大额支付报文完整版(含二代新增功能业务说明)...
  3. MOSS总弹出登陆框的问题
  4. Rational Rose和UML可视化建模基础
  5. 三言两语说清“线性流程”
  6. 在vue中使用axios发送post请求,参数方式
  7. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
  8. HTML学习笔记(七)
  9. cocos2d-x 3.2 DrawNode 绘图API
  10. 收集WebDriver的执行命令和参数信息