Rob*_*bin 1 python reshape tensorflow
我试图了解tf.reshape如何工作。让我们举个例子:
embeddings = tf.placeholder(tf.float32, shape=[N0,N1])
M_2D = tf.placeholder(tf.float32, shape=[N0,None])
M_3D = tf.reshape(M_2D, [-1,N0,1])
weighted_embeddings = tf.multiply(embeddings, M_3D)
Run Code Online (Sandbox Code Playgroud)
在这里,我有一个2D张量M_2D,其列表示维度N1的N0个嵌入的系数。我想创建一个3D张量,其中M_2D的每一列都放置在M_3D的第一维中,并且各列保持相同的顺序。我的最终目标是创建2D嵌入的3D张量,每个张量由M_2D的列加权。
如何确定整形实际上将每一列放置在M_3D的新维度中。是否可以代替放置行?在tensorflow文档中是否有明确的解释tf.reshape的内部工作过程,特别是在提供-1的情况下?
前后张量tf.reshape
具有相同的展平顺序。
在tensorflow运行时中,一个Tensor由原始数据(字节数组),形状和dtype组成,tf.reshape
仅更改形状,而原始数据和dtype不变。-1
或None
in tf.reshape
表示可以计算该值。
例如,
# a tensor with 6 elements, with shape [3,2]
a = tf.constant([[1,2], [3,4], [5,6]])
# reshape tensor to [2, 3, 1], 2 is calculated by 6/3/1
b = tf.reshape(a, [-1, 3, 1])
Run Code Online (Sandbox Code Playgroud)
在这个例子中,a
与b
具有相同的扁平化顺序,即[1,2,3,4,5,6]
,a
具有形状[3,2]
,它的值是[[1,2], [3,4], [5,6]]
,b
有形状[2,3,1]
,其值[[[1],[2],[3]],[[4],[5],[6]]]
。
归档时间: |
|
查看次数: |
1601 次 |
最近记录: |