python Tensor和Array对比分析
如下所示:
区别 | Array | Tensor |
---|---|---|
类型 | uint8,float32系列 | {} |
各类型相互转换 | uint8转float64:image = image * (2. / 255.) - 1 float64转uint8:image.astype(np.uint8) | {} |
扩充维度 | image[np.newaxis, :] | tf.expand_dims(image,axis=0) |
数组拼接 | np.concatenate([image, image], axis=0) | tf.concat([frame,frame],axis=0) |
相互转换 | image.eval() | tf.convert_to_tensor(image) |
拼接 | np.concat, np.concatenate, np.stack, image.append等 | tf.stack, tf.concat |
##array的一些操作
1、获取shape:score.shape #(1, 257, 257)
2、转换成list:score.get_shape().as_list() #[1, 257, 257]
3、list前再扩充一维: [1] + score.get_shape().as_list() #[1, 1, 257, 257]
4、x_crops是(1, 3, 255, 255, 3),将前两维合并:
x_crops = tf.reshape(x_crops, [x_crops_shape[0] * x_crops_shape[1]] + x_crops_shape[2: ])
5、numpy数组堆叠
z.shape本来是(1,127,127,3),想要堆叠成(3,127,127,3)
np.stack([z_crops_hog,z_crops_hog,z_crops_hog])后,变成了(3, 1, 127, 127, 3),
vstack 按行堆叠
hstack 按列堆叠
以上这篇python Tensor和Array对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
首先使用tf.where()将满足条件的数值索引取出来,在numpy中,可以直接用矩阵引用索引将满足条件的数值取出来,但是在tensorflow中这样是不行的.所幸,tensorflow提供了tf.gather()和tf.gather_nd()函数. 看下面这一段代码: import tensorflow as tf sess = tf.Session() def get_tensor(): x = tf.random_uniform((5, 4)) ind = tf.where(x>0.5)
-
详解PyTorch中Tensor的高阶操作
条件选取:torch.where(condition, x, y) → Tensor 返回从 x 或 y 中选择元素的张量,取决于 condition 操作定义: 举个例子: >>> import torch >>> c = randn(2, 3) >>> c tensor([[ 0.0309, -1.5993, 0.1986], [-0.0699, -2.7813, -1.1828]]) >>> a = torch.ones(2,
-
pytorch逐元素比较tensor大小实例
如下所示: import torch a = torch.tensor([[0.01, 0.011], [0.009, 0.9]]) mask = a.gt(0.01) print(mask) tensor比较大小可以用tensor.gt属性.上面比较了a中每个元素和0.01的大小,大于0.01的元素输出True.输出结果: tensor([[False, True], [False, True]]) 我们取出tenor a中对应的大于0.01的值: a[mask] 将对应满足条件的元素输出并自
-
Pytorch Tensor的统计属性实例讲解
1. 范数 示例代码: import torch a = torch.full([8], 1) b = a.reshape([2, 4]) c = a.reshape([2, 2, 2]) # 求L1范数(所有元素绝对值求和) print(a.norm(1), b.norm(1), c.norm(1)) # 求L2范数(所有元素的平方和再开根号) print(a.norm(2), b.norm(2), c.norm(2)) # 在b的1号维度上求L1范数 print(b.norm(1, dim=
-
对Pytorch中Tensor的各种池化操作解析
AdaptiveAvgPool1d(N) 对一个C*H*W的三维输入Tensor, 池化输出为C*H*N, 即按照H轴逐行对W轴平均池化 >>> a = torch.ones(2,3,4) >>> a[0,1,2] = 0 >>>> a tensor([[[1., 1., 1., 1.], [1., 1., 0., 1.], [1., 1., 1., 1.]], [[1., 1., 1., 1.], [1., 1., 1., 1.], [1.,
-
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
PyTorch0.4中,.data 仍保留,但建议使用 .detach(), 区别在于 .data 返回和 x 的相同数据 tensor, 但不会加入到x的计算历史里,且require s_grad = False, 这样有些时候是不安全的, 因为 x.data 不能被 autograd 追踪求微分 . .detach() 返回相同数据的 tensor ,且 requires_grad=False ,但能通过 in-place 操作报告给 autograd 在进行反向传播的时候. 举例: ten
-
pytorch 实现tensor与numpy数组转换
看代码,tensor转numpy: a = torch.ones(2,2) b = a.numpy() c=np.array(a) #也可以转numpy数组 print(type(a)) print(type(b)) print(a) print(b) 输出为: <class 'torch.Tensor'> <class 'numpy.ndarray'> tensor([[1., 1.], [1., 1.]]) [[1. 1.] [1. 1.]] numpy转tensor: imp
-
python Tensor和Array对比分析
如下所示: 区别 Array Tensor 类型 uint8,float32系列 {} 各类型相互转换 uint8转float64:image = image * (2. / 255.) - 1 float64转uint8:image.astype(np.uint8) {} 扩充维度 image[np.newaxis, :] tf.expand_dims(image,axis=0) 数组拼接 np.concatenate([image, image], axis=0) tf.concat([fr
-
python sleep和wait对比总结
在多线程的使用时,为了线程的顺利进行,我们会使用函数来对某个线程进行暂停运行.在多线程中有两个函数可以实现sleep和wait,不过它们在使用时也有不同之处.为了帮助大家更好理清它们之间的相同与区别点,本篇就python中sleep和wait两个函数展开具体的分析. 1.相同点 sleep和wait都是用来进行线程控制,都可以使线程阻塞. (1)sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用not
-
Python判断值是否在list或set中的性能对比分析
本文实例对比分析了Python判断值是否在list或set中的执行性能.分享给大家供大家参考,具体如下: 判断值是否在set集合中的速度明显要比list快的多, 因为查找set用到了hash,时间在O(1)级别. 假设listA有100w个元素,setA=set(listA)即setA为listA转换之后的集合. 以下做个简单的对比: for i in xrange(0, 5000000): if i in listA: pass for i in xrange(0, 5000000): if
-
Python自动化运维_文件内容差异对比分析
模块:difflib 安装:Python版本大于等于2.3系统自带 功能:对比文本之间的差异,而且支持输出可读性比较强的HTML文档,与Linux中的diff命令比较相似. 两个字符串的差异对比: #import difflib #text1=''' #hello world. #how are you. #nice to meet you. #''' #text1_lines=text1.splitlines() # 以行进行分割,便于进行对比 #text2=''' #Hello World.
-
python中in在list和dict中查找效率的对比分析
首先给一个简单的例子,测测list和dict查找的时间: import time query_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000] lst = [] dic = {} for i in range(100000000): lst.append(i) dic[i] = 1 start = time.time() for v in query_lst: if v in lst: continue end1 = time.time
-
Go/Python/Erlang编程语言对比分析及示例代码
本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP.Go的语法.数据类型.控制流等继承于C,Go的包.面对对象等思想来源于Pascal分支,而Go最大的语言特色,基于管道通信的协程并发模型,则借鉴于CSP分支. Go/Python/Erlang语言特性对比 如<编程语言与范式>一文所说,不管语言如何层出不穷
-
Python和Java的语法对比分析语法简洁上python的确完美胜出
Python是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP.Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).相比于C++或Java,Python让开发者能够用更少的代码表达想法.不管是小型还是大型程序,该语言都试图让程序的结构清晰明了. Java是一种广泛使用的计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广
-
python字符串切割:str.split()与re.split()的对比分析
1.str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况. >>> s1="aa bb cc" >>> s1.split(' ') ['aa', 'bb', '', 'cc'] 因此split只适合简单的字符分割 2.re.split,支持正则及多个字符切割 >>> print line abc aa;bb,cc | dd(xx).xxx 12.12' xxxx 按空格切 >>&
-
python:HDF和CSV存储优劣对比分析
小数据用csv,大数据用h5 结论1:几百KB以上的数据都用h5比较好 结论2:几KB的数据h5反而很慢 程序 import pandas as pd import numpy as np from wja.wja_tool import test_time as tt from wja import wja_tool as tool df = tool.generate_sampleDF(row, col) tt().run() df.to_csv('try.csv') tt().end()
-
python 绘制斜率图进行对比分析
你好,我是林骥. 斜率图,可以快速展现两组数据之间各维度的变化,特别适合用于对比两个时间点的数据. 比如说,为了对比分析某产品不同功能的用户满意度,经过问卷调查和数据统计,得到下面这个调查结果: 你不妨自己先思考一下,如何对这组数据进行可视化,才能让信息传递变得更加高效? 下面是我用 matplotlib 制作的图表: 从图中可以直观地看出,功能 C 的用户满意度明显下降,我们用比较鲜明的橙色来表示,以便引起观众重点关注:功能 D 和功能 E 的用户满意度明显提升,我们用蓝色表示,代表数据正在向
随机推荐
- Lua中的string库(字符串函数库)总结
- js模拟弹出效果代码修正版
- photoshop去除渐变色上的文字的简单方法
- Windows Server2008服务器系统的九大特性
- 如何用POP3接收电子邮件?
- java Hibernate 一对多自身关联问题
- java 遍历Map及Map转化为二维数组的实例
- perl的cgi高级编程介绍
- PHP用户验证和标签推荐的简单使用
- C#调用和实现WebService,纯手工打造!
- javascript解析xml字符串的函数
- 详解如何使用Vue2做服务端渲染
- php检测apache mod_rewrite模块是否安装的方法
- Shell字符串截取的详细方法
- ruby 一些简单的例子
- ProcessMagnifier.vbs进程查看
- JS 对java返回的json格式的数据处理方法
- linux中mount/umount命令的基本用法及开机自动挂载方法
- Android自定义ViewGroup实现绚丽的仿支付宝咻一咻雷达脉冲效果
- C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(上)