问题标签 [ragged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
338 浏览

python - 如何填充包含非统一 tf.RaggedTensors 的 tf.data.Dataset?

有一个用于创建Transformer 聊天机器人的教程,它采用多个不同长度的按单词编码的句子列表,首先用 填充长度差异tf.keras.preprocessing,然后从这些编码的句子创建数据集。

我试图首先创建数据集,然后用它填充和批处理它,dataset.padded_batch()因为使用单个 API 看起来更有凝聚力。

我发现的问题是,如果没有事先填充,我会留下一个不同长度的列表列表(例如下面的编码问题列表),不能直接用于创建数据集(根据我的理解)。

在不使用此类对象填充的情况下创建数据集的方法显然是使用tf.RaggedTensor(s)。我现在可以使用 来创建数据集tf.data.Dataset.from_tensor_slices,但之后无法填充数据集。

我得到的错误如下,这与我的数据集内容的指定形状有关(它是一维的,因为它只是不同长度的列表的列表):

如何为 dataset.padded_batch() 提供一些参考形状,以便它可以用一些 MAX_LEN 填充第二维。还是没有 tf.keras.preprocessing 步骤的任何其他填充方式?

0 投票
1 回答
1153 浏览

python - 使用 Keras 在图形模式下将张量转换为不规则张量

我想使用 Keras 在我的图表中将张量转换为不规则张量。但是,该函数RaggedTensor.from_row_lengths在我的图表中失败。

张量流版本:tf-nightly 2.1.0.dev20191203

这是一个代码示例:

该错误似乎与用于检查张量形状的验证有关:

我可以通过使用忽略错误,validate=False但在下一层失败:

我想知道这是否与批量大小和“sequence_in”张量不固定有关。所以我也尝试只将第一个观察值转换为不规则张量,但同样的错误仍然存​​在。

0 投票
1 回答
65 浏览

c - 带有 realloc 的参差不齐的 *char 2d 数组

我想知道如何在 c 中创建一个 ragget 2d string(char*)array。(我的示例代码如下所示)

例如我想要它

  1. 阿尔法贝
  2. 苹果
  3. 孩子
  4. 信号量

但是有了指针,所以当我读取矩阵的 1 行时,我得到了完整的单词

0 投票
0 回答
238 浏览

tensorflow - 不规则张量上的 Keras 自定义层以降低维度

我正在尝试编写一个自定义层来处理可变长度向量,并将它们减少到相同长度的向量。长度是预先知道的,因为可变长度的原因是我有几种不同的数据类型,我使用不同数量的特征进行编码。从某种意义上说,它类似于Embedding only for numeric values。我尝试过使用填充,但结果很糟糕,所以我正在尝试这种方法。

因此,例如,假设我有 3 种数据类型,我使用 3、4、6 个长度向量对其进行编码。

我尝试实现一个自定义层,如:

直接调用时似乎有效:

但是当我尝试将其合并到模型中时,它失败了:

我不确定如何实现这样的层,或者我做错了什么。

0 投票
0 回答
148 浏览

python - RNN 中 RaggedTensor 输入的输入形状问题

我从 python 列表中创建了参差不齐的张量,如下所示。

检查形状给了我:

TensorShape([10555,无,无])

张量形状([10555])

TensorSliceDataset 形状:((None, None), ()),类型:(tf.float64, tf.float32)>

BatchDataset 形状:((无​​,无,无),(无,)),类型:(tf.float64,tf.float32)>

我的问题是我无法弄清楚如何使用这种类型的数据集在 SimpleRNN 层中指定 input_shape。谢谢,

0 投票
1 回答
1562 浏览

python - 有没有办法标准化一个参差不齐的张量?

我试过tf.linalg.normalize了,它给了我一个值错误:

我也无法使tf.keras.layers.experimental.preprocessing.Normalization()方法起作用。谢谢,

0 投票
2 回答
380 浏览

python - 来自不同长度列表列表的 xarray 变量

我有一个函数可以根据模型的各种输出创建一个 xarray 数据集。我收集的信息之一是列表列表(长度不同)。这个变量被称为并且与其他变量cids具有相同的维度。repo_id

到目前为止,以下一直运行良好:

正如预期的那样,这会产生以下结果:

但是,我最近遇到了一个情况,我的变量中的列表长度cids是相同的:

这会产生以下错误:

输入将不胜感激,不知道如何最好地处理这个。似乎 xarray 试图变得聪明,并假设的维度cids不是repo_id长度为 2,而是长度为 3 ......一个错误?

0 投票
0 回答
32 浏览

python - 在张量流中使用可变维度张量

我想构建一个张量占位符,具有维度的特征,比如说(10, a, a)。这样features[i, :, :]可以是任意平方张量。例如,features[0. :, :]可能是维度的5*5,并且features[1, :, :]可以同时是维度8*8的。我们如何使用 tensorflow 做到这一点?
为此,我找到了参差不齐的张量。但问题是,为了在参差不齐的张量中输入值,我将不得不在 python 中使用普通列表。在我的情况下,这个提要列表非常稀疏,没有办法压缩参差不齐的列表。

0 投票
1 回答
204 浏览

python - 用于列表列表的空间高效数据存储。元素是整数,所有列表的大小都不同

说我的数据看起来像这样

存储这段时间数据最节省空间的方式是什么?

我查看了 Numpy 文件,但 numpy 只支持统一长度数据

我查看了 Hdf5,它支持 1d 不规则张量,但不支持 2d

https://stackoverflow.com/a/42659049/3259896

因此,可以选择为 中的每个列表创建一个单独的 hdf5 文件thisList,但我可能会拥有 10-2000 万个这些列表。

0 投票
1 回答
910 浏览

tensorflow - tf.keras.layers.Conv1D 是否支持 RaggedTensor 输入?

在 tensorflow conv1D 层文档中,它说;

'当将此层用作模型中的第一层时,提供一个 input_shape 参数(整数元组或无,例如 (10, 128) 用于 128 维向量的 10 个向量的序列,或 (None, 128) 用于可变 - 128 维向量的长度序列。

所以我知道我们可以输入可变长度序列,但是当我为 conv1D 层使用不规则张量输入时,它给了我一个错误:

ValueError:层 conv1d 不支持将 RaggedTensors 作为输入。

如果不是 RaggedTensors,可变长度序列的真正含义是什么?

谢谢,