如何用无量纲张量流重塑张量

2024-05-06 12:58:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个(3, None, 80, 10)形状的张量,我想把它重塑成(3*None, 80, 10)。我尝试了以下代码行,但没有得到所需的形状(3*None, 80, 10),我得到了形状(None, None, None)的张量:

shape = [tf.shape(node_embed_tmp)[k] for k in range(4)]
Y = tf.reshape(node_embed_tmp, [shape[0]*shape[1], shape[2], shape[3]])

有什么建议吗

编辑:

我还尝试了以下代码:

shape = [tf.shape(node_embed_tmp)[k] for k in range(4)]
Y=tf.reshape(node_embed_tmp, [-1, shape[2], shape[3]])

但是我得到了(None, None, None)的形状和以下错误:ValueError: Input size (depth of inputs) must be accessible via shape inference, but saw value None.


Tags: 代码innonenode编辑fortfrange
1条回答
网友
1楼 · 发布于 2024-05-06 12:58:45

重塑变维张量是一项挑战, 您可以使用keras.Input库

from tensorflow import keras
tensor_shape = (3, None, 80, 10)
input = keras.Input(shape=((None,) + tensor_shape[1:]), dtype = 'int32')
input.shape

输出

TensorShape([None, None, None, 80, 10])

相关问题 更多 >