Python Tensorflow中的拉链和整形
问题: 假设我有两个张量,Python Tensorflow中的拉链和整形,python,tensorflow,Python,Tensorflow,问题: 假设我有两个张量,a和b。它们都有相同的形状:[?,104096] 如何压缩这两个元素,使生成的张量的形状为[?,20,4096],但也,使得a的第I个元素正好位于b的第I个元素之前 列表示例: a = [1, 3, 5] b = [2, 4, 6] 现在我想要一个看起来像[1,2,3,4,5,6]和的张量,而不是[1,3,5,2,4,6],如果我tf.stack这两者,然后使用tf.reformate,对吗 或者一个更一般的问题是,你怎么知道张量的顺序是什么 首先看起来像是,堆叠然后
a
和b
。它们都有相同的形状:[?,104096]
如何压缩这两个元素,使生成的张量的形状为[?,20,4096],但也,使得a
的第I个元素正好位于b
的第I个元素之前
列表示例:
a = [1, 3, 5]
b = [2, 4, 6]
现在我想要一个看起来像[1,2,3,4,5,6]
和的张量,而不是[1,3,5,2,4,6]
,如果我tf.stack
这两者,然后使用tf.reformate
,对吗
或者一个更一般的问题是,你怎么知道张量的顺序是什么 首先看起来像是,堆叠然后重塑完成工作:
import tensorflow as tf
a = tf.constant([1, 3, 5])
b = tf.constant([2, 4, 6])
c = tf.stack([a, b], axis = 1)
d = tf.reshape(c, (-1,))
with tf.Session() as sess:
print(sess.run(c)) # [[1 2],[3 4],[5 6]]
print(sess.run(d)) # [1 2 3 4 5 6]
要回答您的第二个问题,TensorFlowReformate
操作使用与numpy
默认顺序相同的顺序,即a.k.aC
顺序,引用自:
使用此索引顺序读取数组中的元素,并使用此索引顺序将元素放入经过整形的数组中。”C’表示使用类似C的索引顺序读/写元素,最后一个轴索引变化最快,返回到第一个轴索引变化最慢
import numpy as np
a = np.array([1, 3, 5])
b = np.array([2, 4, 6])
c = np.stack([a, b], axis=1)
c.reshape((-1,), order='C') # array([1, 2, 3, 4, 5, 6])