Tensor(张量)

1、Tensor,又名张量,从工程角度来说,可简单地认为它就是一个数组,且支持高效的科学计算。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)或更高维的数组(高阶数组),torch里的Tensor支持GPU加速。

基本操作

1、从接口的角度讲,对tensor的操作可分为两类:
(1)torch.function,如torch.save等
(2)tensor.function,如tensor.view等
2、从存储的角度讲,对tensor的操作又可分为两类:
(1)不会修改自身的数据,如a.add(b),加法的结果会返回一个新的tensor
(2)会修改自身的数据,如a.add_(b),加法的结果仍存储在a中,a被修改了
函数名以_结尾的都是inplace方式,即会修改调用者自己的数据,在实际应用中需要加以区分。
  1. #_Author_:Monkey
  2. #!/usr/bin/env python
  3. #-*- coding:utf-8 -*-
  4. import torch as t
  5. # from __future__ import print_function
  6. a = t.Tensor(2,3)       #指定Tensor的形状,a的数值取决于内存空间的状态
  7. print(a)
  8. '''''tensor([[2.1469e+33, 5.9555e-43, 2.1479e+33],
  9. [5.9555e-43, 6.3273e+30, 5.9555e-43]])'''
  10. b = t.Tensor([ [1,2,3],[4,5,6] ])       #用list的数据创建Tensor
  11. print(b)
  12. '''''tensor([[1., 2., 3.],
  13. [4., 5., 6.]])'''
  14. c = b.tolist()      #Tensor转list
  15. print(c)
  16. '''''[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]'''
  17. #torch.size()返回torch.Size的子类,但其使用方式与tuple稍有区别
  18. b_size = b.size()
  19. print(b_size)
  20. '''''torch.Size([2, 3])'''
  21. d = b.numel()
  22. print(d)
  23. '''''6'''
  24. #创建一个和b形状一样的tensor
  25. e = t.Tensor(b_size)
  26. f = t.Tensor((2,3))
  27. print(e)
  28. print(f)
  29. '''''tensor([[2.6492e+21, 4.5908e-41, 0.0000e+00],
  30. [0.0000e+00, 1.4013e-45, 2.9775e-41]])
  31. tensor([2., 3.])'''
  32. print(e.shape)
  33. '''''torch.Size([2, 3])'''
  34. print(t.ones(2,3))
  35. '''''tensor([[1., 1., 1.],
  36. [1., 1., 1.]])'''
  37. print(t.zeros(2,3))
  38. '''''tensor([[0., 0., 0.],
  39. [0., 0., 0.]])'''
  40. print(t.arange(1,6,2))
  41. '''''tensor([1, 3, 5])'''
  42. print(t.linspace(1,10,3))
  43. '''''tensor([ 1.0000,  5.5000, 10.0000])'''
  44. print(t.randn(2,3))
  45. '''''tensor([[-0.3437, -0.3981, -0.3250],
  46. [ 2.6717, -0.7511, -0.5858]])'''
  47. print(t.randperm(5))        #长度为5的随机排序
  48. '''''tensor([4, 0, 3, 2, 1])'''
  49. print(t.eye(2,3))           #对角线为1,不要求行列数一致
  50. '''''tensor([[1., 0., 0.],
  51. [0., 1., 0.]])'''

Tensor基本操作的更多相关文章

  1. pytorch入坑一 | Tensor及其基本操作

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

  2. Pytorch-Tensor基本操作

    (此文为个人学习pytorch时的笔记,便于之后的查询) Tensor基本操作 创建tensor: ​ 1.numpy向量转tensor: a=np.array([2,2,2]) b=torch.fr ...

  3. pytorch笔记

    Tensor slice Tensor的indices操作 以[2,3]矩阵为例,slice后可以得到任意shape的矩阵,并不是说一定会小于2行3列. import torch truths=tor ...

  4. 解释张量及TF的一些API

    张量的定义 张量(Tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具.张 ...

  5. 深度学习原理与框架-Tensorflow基本操作-变量常用操作 1.tf.random_normal(生成正态分布随机数) 2.tf.random_shuffle(进行洗牌操作) 3. tf.assign(赋值操作) 4.tf.convert_to_tensor(转换为tensor类型) 5.tf.add(相加操作) tf.divide(相乘操作) 6.tf.placeholder(输入数据占位

    1. 使用tf.random_normal([2, 3], mean=-1, stddev=4) 创建一个正态分布的随机数 参数说明:[2, 3]表示随机数的维度,mean表示平均值,stddev表示 ...

  6. 深度学习框架Tensor张量的操作使用

    - 重点掌握基本张量使用及与numpy的区别 - 掌握张量维度操作(拼接.维度扩展.压缩.转置.重复……) numpy基本操作: numpy学习4:NumPy基本操作 NumPy 教程 1. Tens ...

  7. TensorFlow、numpy、matplotlib、基本操作

    一.常量的定义 import tensorflow as tf #类比 语法 api 原理 #基础数据类型 运算符 流程 字典 数组 data1 = tf.constant(2,dtype=tf.in ...

  8. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  9. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

随机推荐

  1. 命名空间的using声明

    using声明具有如下的形式: using namespace::name; 一旦声明了上述语句,就可以直接访问命名空间中的名字: #include<iostream> //using声明 ...

  2. 读spring源码(一)-ClassPathXmlApplicationContext-初始化

    工作来几乎所有的项目都用到了spring,却一直没有系统的读下源码,从头开始系统的读下吧,分章也不那么明确,读到哪里记到哪里,仅仅作为个笔记吧. 先看ClassPathXmlApplicationCo ...

  3. django+vue

    django安装配置方式略过 1.安装node.js,官网地址:https://nodejs.org/zh-cn/download/ 2.cd到项目目录下,执行npm install -g vue-c ...

  4. 【easy】438.Find All Anagrams in a String 找出字符串中所有的变位词

    Input: s: "abab" p: "ab" Output: [0, 1, 2] Explanation: The substring with start ...

  5. Ubuntu VMware workstation虚拟机清理缓存文件获得更大硬盘空间

    1 前言 VMware workstation 15 Player经常使用拖拉复制文件到虚拟机,从而导致了drag_and_drop特别大,占用了很多硬盘空间. fanbi@ubuntu:~/.cac ...

  6. 工具篇之GIT知识整理(一)

    目录 项目工具篇(一)GIT 说在前面 背景 与其他版本控制产品对比 Git下载地址及安装 下载地址 安装 在案例中简单使用Git命令 git clone git log git diff git c ...

  7. docker简单介绍----Dockerfile命令

    DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...

  8. overlay 文件系统

    overlay文件系统浅析 overlayfs文件系统类似于aufs,相比aufs,overlay实现更简洁,很早就合入了linux主线, 合入主线后overlayfs修改为overlay. dock ...

  9. centos下设置开机启动程序

    首先,设置权限, 由于/etc/rc.local是/etc/rc.d/rc.local的软连接,所以必须确保/etc/rc.local和/etc/rc.d/rc.local都有x权限(可执行) 执行命 ...

  10. docker删除已经停止的容器

    前言:docker容器已经停止运行的容器,怎么清理 1.如图:   docker   ps  -a  :显示所有运行过的docker容器 status    :  docker容器的状态 docker ...