tflearn /理解形状中的非方形n维输入

问题描述 投票:0回答:1

我想知道:处理每个维度有不同长度的n维输入数据的最佳方法是什么?所以我要说我的输入数据如下所示:

input_data = n.array([
    [[0.4, -0.3, 0.43, 0.23], [5, 8]],
    [[0.3, -0.2, 0.34, 0.32], [4, 7]],
])

所以我可以想象,根据一个输入张量,这是不可能的,因为矩阵不是正方形/均匀的,我只能在调用tflearn.input_data时描述方形,所以例如:

input_data = n.array([
    [0.4, -0.3, 0.43, 0.23],
    [0.4, -0.3, 0.43, 0.23],
])
input_data = n.reshape(input_data, [-1, 4, 1])
input_layer = tflearn.input_data(shape=[None, 4, 1], name='input')

如果我做对了,这里发生的是:我们将每个输入集的每个元素转换为1个元素的元组:

>>> input_data = n.reshape(input_data, [-1, 4, 1])
>>> input_data
array([[[ 0.4 ],
        [-0.3 ],
        [ 0.43],
        [ 0.23]],

       [[ 0.4 ],
        [-0.3 ],
        [ 0.43],
        [ 0.23]]])

当我们调用tflearn.input_data(shape=[None, 4, 1], name='input')时我们说:None因为我们没有指定批量大小,所以第一个向量的长度将根据需要调整,41,因为每个输入集现在由4个数组组成,每个数组都有1个元素。 (..?或者它是“并且4个数组中的每个包含1个数组”?)

所以问题是: - 在某种程度上神奇地可以提供像这样的数据/描述非方形形状(因此对于第一个数据,它将类似于“输入数据是一个n长度的数组,其中每个条目是一个数组, 2个1d数组,长度为4和2.“ - 如果不可能,处理这种输入数据的最佳方法是什么?我们可以用0填充较小向量的输入数据,但我是不确定这是不是一个好主意?作为替代方案,我们可以创建两个独立的输入张量并使用支持多输入张量的网络。乍一看,这对我来说听起来更干净,但我不确定。

tensorflow tflearn
1个回答
0
投票

方案三:简单地将两个向量合并为一个。到目前为止似乎工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.