tensor

Pytorch-属性统计

匿名 (未验证) 提交于 2019-12-03 00:12:02
引言 本篇介绍Pytorch属性统计的几种方式。 求值或位置 norm mean sum prod max, min, argmin, argmax kthvalue, topk norm norm指的是范数,并不是normalize。 normalize是归一化,例如 batch_norm。 要更好的理解范数,就要从函数、几何与矩阵的角度去理解。 我们都知道,函数与几何图形往往是有对应的关系,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化,比如一个函数对应几何空间上若干点组成的图形。 但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,映射表达的就是一个集合通过某种关系转为另外一个集合。通常数学书是先说映射,然后再讨论函数,这是因为函数是映射的一个特例。 为了更好的在数学上表达这种映射关系,(这里特指线性关系)于是就引进了矩阵。这里的矩阵就是表征上述空间映射的线性关系。而通过向量来表示上述映射中所说的这个集合,而我们通常所说的基,就是这个集合的最一般关系。于是,我们可以这样理解, 一个集合(向量),通过一种映射关系(矩阵),得到另外一个几何(另外一个向量) 。 向量的范数,就是表示这个原有集合的大小 。 矩阵的范数,就是表示这个变化过程的大小的一个度量 。 总结起来一句话, 范数(norm),是具有“长度

TensorFlow01: 二进制文件读取

匿名 (未验证) 提交于 2019-12-03 00:05:01
实现代码: # 读取文件列表 file_name = os.listdir("../data/cifar/") file_list = [os.path.join("../data/ficar/",file) for file in file_name] # 构造文件名度列 file_queue = tf.train.string_input_producer(file_list) # 读取 reader = tf.FixedLengthRecordReader(32*32*3+1) key, value = reader.read(file_queue) print(value) # 解码 decoded = tf.decode_raw(value, tf.uint8) print(decoded) # 将目标值和特征值切开 label = tf.slice(decoded, [0], [1]) image = tf.slice(decoded, [1], [32*32*3]) print("label:", label) print("image:", image) # 调整图片的形状 image_reshape = tf.reshape(image, shape=[3, 32, 32]) print("image_reshape:", image_reshape) # 转置

TensorFlow01:张量

匿名 (未验证) 提交于 2019-12-03 00:05:01
张量的形状: 标量---1个数字---0阶张量 向量---1维数组---1阶张量 矩阵---2维数组---2阶张量 张量---n维数组---n阶张量 张量操作: tf.zeros(shape,dype=tf.float,name=None) #全零张量 tf.ones()是全1张量 tf.zeros_like(tensor,dtype=None,name=None) #创建相同类型,相同形状的张量 tf.fill(shape,value,name=None) #填充指定标量的张量 tf.constant(value,dtype=None,shape=None,name=None) #创建一个常数张量 tf.truncated_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)#所有数字不超过两个标准差 tf.random_normal(shape,mean=0.0,stddv=1.0,dtype=tf.float32,seed,name=None)#随机正态分布的数字组成的矩阵 tf.cast(tensor,dtype) #不会改变原始的tensor,返回新的改变类型后的tensor tensor.get_shape() # 获取tensor形状 tensor.set_shape(shape)

tensorflow2.0相关函数-------- to_categorical 实现独热编码(One-Hot)

匿名 (未验证) 提交于 2019-12-03 00:05:01
to_categorical实现独热编码 函数声明: to_categorical(y, num_classes=None, dtype=‘float32’) 作用:将整型标签转为onehot。y为int数组,num_classes为标签类别总数,大于max(y)(标签从0开始的)。 返回:如果num_classes=None,返回len(y) * [max(y)+1](维度,m*n表示m行n列矩阵,下同),否则为len(y) * num_classes。 import tensorflow as tf oh1 = tf . keras . utils . to_categorical ([ 1 , 3 ]) # oh1=keras.utils.to_categorical([[1],[3]]) print ( oh1 ) """ [[0. 1. 0. 0.] [0. 0. 0. 1.]] """ oh2 = tf . keras . utils . to_categorical ([ 1 , 3 ], num_classes = 5 ) print ( oh2 ) """ [[0. 1. 0. 0. 0.] [0. 0. 0. 1. 0.]] """ num_classes默认为以数组里面最大的为编码依据,也可以指定编码依据,比如num_classes = 10。 简而言之

torch.ge()函数解读

匿名 (未验证) 提交于 2019-12-03 00:03:02
函数作用 torch.ge(a,b)比较a,b的大小,a为张量,b可以为和a相同形状的张量,也可以为一个常数。 代码示例 >>> import torch >>> a=torch.Tensor([[1,2,3],[4,5,6]]) >>> a tensor([[1., 2., 3.], [4., 5., 6.]]) >>> b=torch.Tensor([[2,2,2],[4,5,7]]) >>> b tensor([[2., 2., 2.], [4., 5., 7.]]) >>> torch.ge(a,b) #逐个元素比较 tensor([[0, 1, 1], [1, 1, 0]], dtype=torch.uint8) >>> c=torch.randn(4,4) >>> c tensor([[ 0.3021, 0.5238, -1.2107, 1.3706], [-0.0715, -0.1180, 0.2854, 0.2061], [ 0.7414, 0.2233, -0.4926, -0.6218], [-0.0471, 1.1931, 0.8465, -0.5087]]) >>> d=torch.randn(4,4) >>> d tensor([[-1.9698, 1.8576, 0.2773, 0.6412], [ 1.0153, 0.5828, 0.8718, -0

tensorflow框架学习 (十)―― tensorboard的LSTM

匿名 (未验证) 提交于 2019-12-03 00:03:02
这里不介绍RNN与RNN的特殊情形LSTM,因为内容过多。 一、相关函数介绍 1、创建Cell: tf.nn.rnn_cell.BasicRNNCell(num_units) num_units:创建的神经元个数。 2、创建由 RNNCell cell 指定的递归神经网络,执行 inputs 的完全动态展开(即对单个Cell执行动态展开): tf.nn.dynamic_rnn( cell, inputs, sequence_length=None, initial_state=None, dtype=None, parallel_iterations=None, swap_memory=False, time_major=False, scope=None ) cell:RNNCell的一个实例.。 inputs:RNN输入.如果time_major == False(默认),则是一个shape为[batch_size, max_time, ...]的Tensor,或者这些元素的嵌套元组.如果time_major == True,则是一个shape为[max_time, batch_size, ...]的Tensor,或这些元素的嵌套元组.这也可能是满足此属性的Tensors(可能是嵌套的)元组.前两个维度必须匹配所有输入,否则秩和其他形状组件可能不同.在这种情况下

tensorflow的boolean_mask函数

匿名 (未验证) 提交于 2019-12-02 23:57:01
在mask中定义true,保留与其进行运算的tensor里的部分内容,相当于投影的功能。 mask与tensor的维度可以不相同的,但是对应的长度一定要相同,也就是要有一一对应的部分; 结果的维度 = tensor维度 - mask维度 + 1 以下是参考连接的例子,便于理解: 来源:博客园 作者: 链接:https://www.cnblogs.com/ywheunji/p/11473975.html

pytorch中contiguous()

匿名 (未验证) 提交于 2019-12-02 23:57:01
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u014221266/article/details/80143212 contiguous:view只能用在contiguous的variable上。如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。 一种可能的解释是: 有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的 view() 操作依赖于内存是整块的,这时只需要执行 contiguous() 这个函数,把tensor变成在内存中连续分布的形式。 判断是否contiguous用 torch.Tensor.is_contiguous() 函数。 import torch x = torch . ones ( 10 , 10 ) x . is _contiguous () # True x . transpose ( 0 , 1 ) . is _contiguous () # False x . transpose ( 0 , 1 ) . contiguous () . is _contiguous () # True 在pytorch的最新版本0.4版本中

Social LSTM 实现代码分析

匿名 (未验证) 提交于 2019-12-02 23:49:02
Social LSTM最早提出于文献 “Social LSTM: Human Trajectory Prediction in Crowded Spaces”,但经过资料查阅目前暂未找到原文献作者所提供的程序代码和数据,而在github上有许多针对该文献的实现版本代码。 本文接下来的实现代码来自 https://github.com/xuerenlv/social-lstm-tf ,代码语言为Python3,代码大体实现了原论文中 核心原创部分 的模型,包括Vanilla LSTM(没有考虑行人轨迹之间关联性的LSTM)和Social LSTM(使用池化层考虑了行人轨迹之间关联性的LSTM模型)的模型构建、训练和小样本测试的代码,但对横向对比的其他模型、模型量化评估方法等暂未实现。 本文下面将从代码中 矩阵数据和列表(list)数据的维度 细说实现过程和模型的特点。 主要功能代码文件: util.py 数据格式: input_data, target_data = dataLoader.next_batch() # input_data : [batch_size, seq_length, 2] # target_data : [batch_size, seq_length, 2] 批量处理数据大小 x 序列长度大小 x 二维地址数据(已经过标准化处理,介于 \(0 - 1\) )

tf.nn.softmax 分类

匿名 (未验证) 提交于 2019-12-02 23:49:02
tf.nn.softmax(logits,axis=None,name=None,dim=None) 参数: logits:一个非空的Tensor。必须是下列类型之一:half, float32,float64 axis:将在其上执行维度softmax。默认值为-1,表示最后一个维度 name:操作的名称(可选) dim:axis的已弃用的别名 返回: 一个Tensor,与logits具有相同的类型和shape sample import tensorflow as tf #tf.enable_eager_execution() tf.compat.v1.enable_eager_execution() ones = tf.ones(shape=[2,3]) print(ones) temp1 = tf.nn.softmax(ones,axis=0) # 列 print(temp1) temp2 = tf.nn.softmax(ones,axis=1) # 行 print(temp2) output tf.Tensor( [[1. 1. 1.] [1. 1. 1.]], shape=(2, 3), dtype=float32) tf.Tensor( [[0.5 0.5 0.5] [0.5 0.5 0.5]], shape=(2, 3), dtype=float32) tf