tensorflow 张量相乘变量和张量的区别

tensorflow list和tensor的区别_百度知道
tensorflow list和tensor的区别
我有更好的答案
tensə(r)]
美 [&#712:Next we set some other prtɛnsɚtensor 读音:英 [&#712:张肌,张量例如: mass and the inertia tensor. 下一步我们设置物体的一些其它属性:质量和惯性张量。 tensorflow list是tensorflow列表;TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图象的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统, -ˌsɔr]
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在Tensorflow中,所有数据都通过张量的形式来表示,从功能上看,张量可以简单的被理解为多维数组。其中零阶张量表示标量(scalar),也就是一个数;第一阶张量为向量(vector),也就是一个一维数组;同理第n阶张量就是n维数组。
但是张量在Tensorflow中的实现并不是采用数组的形式,他只是对Tensorflow中运算结果的引用。在张量中并没有真正的保存数字,它保存的是如何得到这些数字的计算过程。
例如向量加法,运行下列代码时并不会得到加法的结果,而是一个对结果的引用。
Tensorflow的张量和Numpy的数组是不同的,Tensorflow计算的结果不是一个具体数字,而是一个张量结构。
一个张量主要保存三个属性:名字(name)、维度(shape)、类型(type)
张量的第一个属性名字不仅是一个张量的唯一标识符,它同样给出了这个张量是如何计算出来的。Tensorflow的计算都可以通过计算图的模型来建立,而计算图的每一个节点代表一个计算,计算的结果就保存在张量中,所以张量和计算图上的节点所代表的计算结果是对应的。这样张量的命名就可以通过“node:src_ouput”的形式给出,node是节点名,src_output表示当前张量来自节点的第几个输出。
例如上面的”add:0”就说明了result这个张量是计算节点”add”输出的第一个结构(编号从0开始)。
张量的第二个属性是张量的维度(shape),这个属性描述了一个张量的维度信息。比如上面样例中的shape=(2,)说明张量result是一个一维数组,这个数组长度为2.维度是张量的一个很重要的属性,围绕张量维度的Tensorflow也给出了很多有用计算
张量第三个属性是类型(type),每一个张量会有唯一的类型,Tensorflow会对参与运算的所有张量进行类型检查,当发现类型不匹配时会报错。
但是如果是指定了类型则不会报错
不置顶类型Tensorflow会给出默认类型,不带小数点是int32,带小数点是float32。
Tensorflow支持14种类型
实数(tf.float32、tf.float64)
整数(tf.int8、tf.int16、tf.int32、tf.int64、tf.uint8)
布尔型(tf.bool)
复数(tf.complex64、tf.complex128)
张量的使用
和Tensorflow的计算模型相比,它的数据模型相对比较简答,张量使用主要可以总结为两大类。
第一类用途是对中间计算结果的引用。当一个计算包含很多中间结果时,使用张量可以大大提高代码的可读性。
a和b其实就是对常量生成这个运算结果的引用,这样在做加法时可以直接使用这两个变量,而不需要再去生成常量。当计算的复杂度增加时,通过张量引用计算的中间结果可以使代码的可阅读性大大提升。同时通过张量来存储中间结果,这样可以方便获取中间结果。比如在卷积神经网络中,卷积层或者池化层有可能改变张量的维度,通过result_get_shape函数获取结果张量的维度信息可以免去人工计算的麻烦。
使用张量的第二类情况是计算图构造完成后,张量可以用来获取计算结果,也就是真实的数字。虽然张量本身没有存储具体数字,但是通过会话(session)可以得到具体是数字
访问:21466次
积分:1217
排名:千里之外
原创:98篇
转载:29篇
(1)(6)(5)(9)(10)(28)(14)(10)(46)请登录查看
tf.dynamic_stitchdynamic_stitch(
)参见指南:将数据张量的值插入一个张量。建立一个合并的张量merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]例如,如果每个 indices[m] 都是标量或向量,则我们有:# Scalar indices:
merged[indices[m], ...] = data[m][...]
# Vector indices:
merged[indices[m][i], ...] = data[m][i, ...]每个 data[i].shape 必须以相应的 indices[i].shape 开始,并且其余的 data[i].shape 必须是恒定的 w.r.t.i。也就是说我们必须有 data[i].shape = indices[i].shape + constant。就这个常量而言,输出形状为:merged.shape = [max(indices)] + constant将按顺序合并值,因此,如果一个索引同时出现在 indices[m][i] 和 indices[n][j],并且 (m,i) & (n,j),那么切片 data[n][j] 会出现在合并后的结果中。例如:indices[0] = 6
indices[1] = [4, 1]
indices[2] = [[5, 2], [0, 3]]
data[0] = [61, 62]
data[1] = [[41, 42], [11, 12]]
data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]]
merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42],
[51, 52], [61, 62]]此方法可用于合并由 dynamic_partition 创建的分区,如以下示例所示:# Apply function (increments x_i) on elements for which a certain condition
# apply (x_i != -1 in this example).
x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4])
condition_mask=tf.not_equal(x,tf.constant(-1.))
partitioned_data = tf.dynamic_partition(
x, tf.cast(condition_mask, tf.int32) , 2)
partitioned_data[1] = partitioned_data[1] + 1.0
condition_indices = tf.dynamic_partition(
tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2)
x = tf.dynamic_stitch(condition_indices, partitioned_data)
# Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain
# unchanged.ARGS:indices:至少有一个 int32 类型的张量对象的列表。data:与相同类型的张量对象的索引长度相同的列表。name:操作的名称(可选)。返回:返回张量。与数据具有相同的类型。
意见反馈:
联系方式:
广告等垃圾信息
不友善内容
违反法律法规的内容
不宜公开讨论的政治内容他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 tensorflow 变量 张量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信