Python 如何在tensorflow中创建重塑层?

Python 如何在tensorflow中创建重塑层?,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,当我有形状[2,2,2]的数据时,例如: a = np.array([[(1,2), (3,4)], [(5,6), (7,8)] ]) b = np.array([[1,0], [0,1]]) 我希望层输出[2,2],例如: a = np.array([[(1,2), (3,4)], [(5,6), (7,8)] ]) b = np.array([[

当我有形状[2,2,2]的数据时,例如:

a = np.array([[(1,2), (3,4)],
              [(5,6), (7,8)]
              ])
b = np.array([[1,0],
              [0,1]])
我希望层输出[2,2],例如:

a = np.array([[(1,2), (3,4)],
              [(5,6), (7,8)]
              ])
b = np.array([[1,0],
              [0,1]])
如何构建层?我当前的设置返回[2,2,1]的形状,我似乎无法在图层的units变量中指定尺寸:

tf_x = tf.placeholder(tf.float32, [None, 2, 2]) 

output = tf.layers.dense(tf_x, 1, tf.nn.relu) 

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())    
    pred = sess.run(output, {tf_x: a})

您可以这样做:

b = tf.reshape(a, shape)
我当前的设置返回[2,2,1]的形状,我似乎无法在图层的units变量中指定尺寸:


我的问题是,逻辑上,每一行[(a1,b1),(a2,b2)]中的(a,b)属于一起,第二个变量b依赖于a(即,逻辑上,即使b1=b2,如果a1!=a2,它们也不相等)。如果我以这种方式对其进行重塑,它将看起来像[a1,b1,a2,b2],其中这两个数字的逻辑配对可能会丢失,即如果b1=b2,重塑后的行将包含相同的数字两次,即使它们的意思不同。这是重塑数据的正确方法吗?这只是在处理前后重塑数据,不是吗?我想也许你可以在图层中指定。不管怎样,谢谢。不是真的,它使用矩阵将输入数组映射到输出数组。重塑是将数据转换成所需的形状
output=tf.layers.dense(tf_x,4,tf.nn.relu)
这里您指定了输出元素的数量。