张量

TensorFlow函数:tf.scatter_nd

匿名 (未验证) 提交于 2019-12-03 00:22:01
tf.scatter_nd 函数 scatter_nd( indices, updates, shape, name=None ) 参见指南: 张量变换>分割和连接 根据indices将updates散布到新的(初始为零)张量。 根据索引对给定shape的零张量中的单个值或切片应用稀疏updates来创建新的张量。此运算符是 tf.gather_nd 运算符的反函数,它从给定的张量中提取值或切片。 警告:更新应用的顺序是非确定性的,所以如果indices包含重复项的话,则输出将是不确定的。 indices是一个整数张量,其中含有索引形成一个新的形状shape张量。indices的最后的维度可以是shape的最多的秩: indices.shape[ -1 ] <= shape.rank indices.shape[: -1 ] + shape[indices.shape[ -1 ]:] 最简单的分散形式是通过索引将单个元素插入到张量中。例如,假设我们想要在8个元素的1级张量中插入4个分散的元素。 在Python中,这个分散操作看起来像这样: indices = tf.constant([[ 4 ], [ 3 ], [ 1 ], [ 7 ]]) updates = tf.constant([ 9 , 10 , 11 , 12 ]) shape = tf.constant([ 8 ])

tensorflow打印内部张量

匿名 (未验证) 提交于 2019-12-03 00:20:01
1. training_decoder_output 保存了 dynamic_decoder 过程的结果,其形式为 tuple(rnn_output,sample_id) traing_logits 获取了 training_decoder_output 中的 rnn_output k1 获取 shape,k2 获取具体 traing_logits ֵ training_decoder_output, _, _ = tf.contrib.seq2seq.dynamic_decode(training_decoder, impute_finished=True, maximum_iterations=max_target_sequence_length) training_logits = tf.identity(training_decoder_output.rnn_output, 'logits') k1=tf.shape(training_logits) k2=training_logits 2.在 Session 中, feed 数据,并打印 training_logits 的值 m1,m2=sess.run([k1,k2],{input_data: sources_batch, targets: targets_batch, lr: learning_rate,

tensorflow打印内部张量

匿名 (未验证) 提交于 2019-12-03 00:19:01
1. training_decoder_output 保存了 dynamic_decoder 过程的结果,其形式为 tuple(rnn_output,sample_id) traing_logits 获取了 training_decoder_output 中的 rnn_output k1 获取 shape,k2 获取具体 traing_logits ֵ training_decoder_output, _, _ = tf.contrib.seq2seq.dynamic_decode(training_decoder, impute_finished=True, maximum_iterations=max_target_sequence_length) training_logits = tf.identity(training_decoder_output.rnn_output, 'logits') k1=tf.shape(training_logits) k2=training_logits 2.在 Session 中, feed 数据,并打印 training_logits 的值 m1,m2=sess.run([k1,k2],{input_data: sources_batch, targets: targets_batch, lr: learning_rate,

TensorFlow中的张量(tensor)

匿名 (未验证) 提交于 2019-12-03 00:19:01
可以先看看张量的官方介绍: https://tensorflow.google.cn/programmers_guide/tensors 在tensorflow程序中所有的数据都通过张量的形式来表示。 TensorFlow 中的核心数据单位是张量。张量是对矢量和矩阵向潜在的更高维度的 泛化 。对内,TensorFlow 将张量表现为基本数据类型的 n 维数组。 其中零阶张量表示标量(scalar)也就是一个数;一阶张量为向量,也就是一维数组;n阶张量可以理解为一个n维数组。 但张量的实现并不是直接采用数组的形式,它只是对TensorFlow中运算结果的引用。在张量中并没有保存数字,它保存的是如何得到这些数字的计算过程。 以下是主要的特殊张量: tf.Variable tf.constant tf.placeholder tf.SparseTensor tf.Variable 一个张量主要有以下属性: 形状(shape) 类型(type), 例如 float32,int32 或 string 阶(rank) 在TensorFlow系统中,张量的维数来被描述为阶 。 比如,下面的张量(使用Python中list定义的)就是2阶。 t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 你可以认为一个二阶张量就是我们平常所说的矩阵,一阶张量可以认为是一个向量

Pytorch学习----认识张量

匿名 (未验证) 提交于 2019-12-03 00:15:02
一、Tensor概念 标量:是一个常数,为0维张量 向量:是一行或者一列数组成,为1维张量 矩阵:包含行和列两个维度。是2维张量。 torch.Tensor包含的属性: dtype:张量的数据类型,如torch.FloatTensor shape:张量的形状,如(64, 3, 224, 224) device:张量所在的设备,GPU/CPU data:被包装的Tensor grad:data的梯度 grad_fn:创建Tensor的Function,是自动求导的关键 requires_grad:指示是否需要梯度 is_leaf:指示是否是叶子结点 二、Tensor创建:直接创建 1. torch.tensor(data, dtype=None, device=None) 功能 :从data创建tensor 参数 : data:数据,可以是list,numpy dtype:数据类型,默认与data一致 device:所在设备,cpu或gpu requires_grad:是否需要梯度 pin_memory:是否存于锁页内存 import torch import numpy as np arr = np.ones((3, 3)) print("arr的数据类型:", arr.dtype) t = torch.tensor(arr) print("t的数据类型:", t.dtype)

深度之眼PyTorch训练营第二期 ---3、计算图与动态图机制

匿名 (未验证) 提交于 2019-12-03 00:15:02
一、计算图 1、计算图是用于描述运算的有向无环图。 主要有两个元素:结点(Node)、边(edge) 结点表示 数据 ,如向量、矩阵、张量 边表示 运算 ,如加减乘除卷积等   例子:用计算图表示 y = (x + w) * (w + 1)   拆分:a = x + w b = w + 1 ---> y = a * b 2、计算图与梯度求导 =b * 1 + a * 1 =b + a =(w+1) + (x+w) =2*w + x + 1 =2 * 1 + 2 + 1 =5 y到w所有路径 3、叶子结点:用户创建的结点称为叶子结点,如X与W is_leaf:指示张量是否为叶子结点 retain_grad():保存相应张量的梯度 grad_fn:记录创建该张量时所用到的方法(函数) --- 反向传播时常用 结果:y.grad_fn = <MulBackward0>   a.grad_fn = <AddBackward0>   b.grad_fn = <AddBackward0> 二、动态图 Dynamic Graph 动态图:运算与搭建同时进行 ---PyTorch 灵活,易调节 静态图:先搭建图,后运算 ---tensorflow 高效,不灵活 来源:博客园 作者: cola_cola 链接:https://www.cnblogs.com/cola-1998/p/11683243

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)

深度学习面试题11:池化(same池化、valid池化、带深度的池化)

匿名 (未验证) 提交于 2019-12-02 23:48:02
Ŀ¼    Same最大值池化    多深度的same池化    Same平均值池化    Valid池化    参考资料 池化(Pooling)操作与卷积类似,取输入张量的每个位置的矩形领域内的最大值或平均值作为该位置的输出。 池化操作分为same池化和valid池化,同时还可以设置移动的步长 举例:4行4列的张量x和2行3列的掩码进行步长为1的same最大值池化,其过程如下 池化的结果是 返回目录 多深度的same池化是在每个深度上分别进行池化操作。 举例:3行3列2深度的张量和2行2列2深度的掩码进行步长为2的same最大值池化 池化后不改变深度,结果为 返回目录 举例:3行3列2深度的张量和2行2列2深度的掩码进行步长为2的same平均值池化 池化后不改变深度,结果为 返回目录 Valid池化与same池化的不同之处在于掩码只在张量内移动,举例:4*4*1的张量x和2*2*1的掩码进行步长为1的 valid最大值池化 结果为 返回目录 《图解深度学习与神经网络:从张量到TensorFlow实现》_张平 返回目录

TensorFlow

匿名 (未验证) 提交于 2019-12-02 23:42:01
TensorFlow模块与APIs TensorFlow架构 TensorFlow数据流图 数据流图优势:并行计算快、分布式计算快、预编译优化、可移植性好。 TensorFlow 张量 Q:TensorFlow张量是什么? 张量是用来表示多维数据的 张亮是执行操作时的输入或者输出数据 用户通过执行操作来创建或计算张量 张亮的形状不一定在编译时确定,可以在运行时通过形状推断计算得出 Q:TensorFlow张量操作的产生? tf.constant ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //常量 tf.placeholder ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //占位符 tf.Variable ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ //变量 TensorFlow变量 tensorflow变量(Variable)的主要作用是维护特定节点的状态,如深度学习或机器学习的模型参数 tf.Variable 方法是操作,返回值是变量(特殊张量) 通过tf.Variable方法创建的变量,与张量一样,可以作为操作的输入和输出。不同之处在于: ①张量的生命周通通常随依赖的计算完成而结束,内存也随之释放 ②变量则常驻内存,在每一步训练时不断的更新其值,以实现模型参数的更新

tf.train.batch

匿名 (未验证) 提交于 2019-12-02 23:42:01
在张量中创建多个张量。参数张量可以是张量的列表或字典。函数返回的值与张量的类型相同。这个函数是使用队列实现的。队列的QueueRunner被添加到当前图的QUEUE_RUNNER集合中。 如果enqueue_many为False,则假定张量表示单个示例。一个形状为[x, y, z]的输入张量将作为一个形状为[batch_size, x, y, z]的张量输出。如果enqueue_many为真,则假定张量表示一批实例,其中第一个维度由实例索引,并且张量的所有成员在第一个维度中的大小应该相同。如果一个输入张量是shape [*, x, y, z],那么输出就是shape [batch_size, x, y, z]。容量参数控制允许预取多长时间来增长队列。返回的操作是一个dequeue操作,将抛出tf.errors。如果输入队列已耗尽,则OutOfRangeError。如果该操作正在提供另一个输入队列,则其队列运行器将捕获此异常,但是,如果在主线程中使用该操作,则由您自己负责捕获此异常。 参数: 返回值: 与张量类型相同的张量列表或字典(除非输入是一个由一个元素组成的列表,否则它返回一个张量,而不是一个列表)。 异常值: ValueError : If the shapes are not specified, and cannot be inferred from the