Tensor基本操作
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方式,即会修改调用者自己的数据,在实际应用中需要加以区分。
- #_Author_:Monkey
- #!/usr/bin/env python
- #-*- coding:utf-8 -*-
- import torch as t
- # from __future__ import print_function
- a = t.Tensor(2,3) #指定Tensor的形状,a的数值取决于内存空间的状态
- print(a)
- '''''tensor([[2.1469e+33, 5.9555e-43, 2.1479e+33],
- [5.9555e-43, 6.3273e+30, 5.9555e-43]])'''
- b = t.Tensor([ [1,2,3],[4,5,6] ]) #用list的数据创建Tensor
- print(b)
- '''''tensor([[1., 2., 3.],
- [4., 5., 6.]])'''
- c = b.tolist() #Tensor转list
- print(c)
- '''''[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]'''
- #torch.size()返回torch.Size的子类,但其使用方式与tuple稍有区别
- b_size = b.size()
- print(b_size)
- '''''torch.Size([2, 3])'''
- d = b.numel()
- print(d)
- '''''6'''
- #创建一个和b形状一样的tensor
- e = t.Tensor(b_size)
- f = t.Tensor((2,3))
- print(e)
- print(f)
- '''''tensor([[2.6492e+21, 4.5908e-41, 0.0000e+00],
- [0.0000e+00, 1.4013e-45, 2.9775e-41]])
- tensor([2., 3.])'''
- print(e.shape)
- '''''torch.Size([2, 3])'''
- print(t.ones(2,3))
- '''''tensor([[1., 1., 1.],
- [1., 1., 1.]])'''
- print(t.zeros(2,3))
- '''''tensor([[0., 0., 0.],
- [0., 0., 0.]])'''
- print(t.arange(1,6,2))
- '''''tensor([1, 3, 5])'''
- print(t.linspace(1,10,3))
- '''''tensor([ 1.0000, 5.5000, 10.0000])'''
- print(t.randn(2,3))
- '''''tensor([[-0.3437, -0.3981, -0.3250],
- [ 2.6717, -0.7511, -0.5858]])'''
- print(t.randperm(5)) #长度为5的随机排序
- '''''tensor([4, 0, 3, 2, 1])'''
- print(t.eye(2,3)) #对角线为1,不要求行列数一致
- '''''tensor([[1., 0., 0.],
- [0., 1., 0.]])'''
Tensor基本操作的更多相关文章
- pytorch入坑一 | Tensor及其基本操作
由于之前的草稿都没了,现在只有重写…. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...
- Pytorch-Tensor基本操作
(此文为个人学习pytorch时的笔记,便于之后的查询) Tensor基本操作 创建tensor: 1.numpy向量转tensor: a=np.array([2,2,2]) b=torch.fr ...
- pytorch笔记
Tensor slice Tensor的indices操作 以[2,3]矩阵为例,slice后可以得到任意shape的矩阵,并不是说一定会小于2行3列. import torch truths=tor ...
- 解释张量及TF的一些API
张量的定义 张量(Tensor)理论是数学的一个分支学科,在力学中有重要应用.张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具.张 ...
- 深度学习原理与框架-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表示 ...
- 深度学习框架Tensor张量的操作使用
- 重点掌握基本张量使用及与numpy的区别 - 掌握张量维度操作(拼接.维度扩展.压缩.转置.重复……) numpy基本操作: numpy学习4:NumPy基本操作 NumPy 教程 1. Tens ...
- TensorFlow、numpy、matplotlib、基本操作
一.常量的定义 import tensorflow as tf #类比 语法 api 原理 #基础数据类型 运算符 流程 字典 数组 data1 = tf.constant(2,dtype=tf.in ...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
随机推荐
- 解决MySQL Access denied for user 'root'@'IP地址' 问题
1.mysql -u root -p 登陆进MYSQL: 2.执行以下命令: GRANT ALL PRIVILEGES ON *.* TO 'your name'@'%' IDENTIFIED BY ...
- ueditor接入秀米编辑器
秀米编辑器用来编辑微信页面很方便,功能也比较强大.秀米提供了第三方编辑器接入的功能,接入方法可以参照官网示例:http://hgs.xiumi.us/uedit/ 但是这里有几点要注意: 1. 示例中 ...
- 使用Github时遇到问题的解决方法
记录了一些我在使用Github时遇到问题的解决方法 git中报unable to auto-detect email address 错误的解决办法 问题描述: 执行 git commit -m &q ...
- 第十五节、OpenCV学习(四)图像平滑与滤波
图像的平滑与滤波 平滑滤波是低频增强的空间域滤波技术,是图像模糊.消除噪声. 一.2D滤波器cv2.filter2D() 对于2D图像可以进行低通或者高通滤波操作,低通滤波(LPF)有利于去噪声,模糊 ...
- 第十二节,OpenCV学习(一)图像的读取、显示、保存
一.读取图像 所谓的图像就是一个数组,对图像的处理就是对数字的处理 import cv2 import numpy as np img = cv2.imread('dog.jpg') print(im ...
- 基于注解的SpringMVC自定义DispatcherServlet配置
通过重载AbstractAnnotationConfigDispatcherServletInitializer实现类的customizeRegistration()方法来自定义DispatcherS ...
- Gitlab_ansible_jenkins三剑客⑤jenkins Pipeline-job的使用
Pipeline-job的使用 创建Pipeline任务 找到root用户的id 编写pipeline脚本 #!groovy pipeline{ agent {node {label 'master' ...
- 详解MariaDB数据库的外键约束
1.什么是外键约束 外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强. 关于数据表的完整性和关连性,可以举个例子 ...
- window10 蓝牙只能发不能收文件解决办法
打开“通过蓝牙发送和接收文件”,在“接收文件”界面中无法接收蓝牙发送的文件 解决办法: 1. win+R后,输入msconfig,回车 2. 点击服务,勾选隐藏Microsoft服务,点击全部禁用 3 ...
- 设置Jexus开机启动
一.如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:/lib/systemd/system/ ,服务以.service结尾 cd /lib/systemd/system/ ...