问题标签 [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.
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 步骤的任何其他填充方式?
python - 使用 Keras 在图形模式下将张量转换为不规则张量
我想使用 Keras 在我的图表中将张量转换为不规则张量。但是,该函数RaggedTensor.from_row_lengths
在我的图表中失败。
张量流版本:tf-nightly 2.1.0.dev20191203
这是一个代码示例:
该错误似乎与用于检查张量形状的验证有关:
我可以通过使用忽略错误,validate=False
但在下一层失败:
我想知道这是否与批量大小和“sequence_in”张量不固定有关。所以我也尝试只将第一个观察值转换为不规则张量,但同样的错误仍然存在。
c - 带有 realloc 的参差不齐的 *char 2d 数组
我想知道如何在 c 中创建一个 ragget 2d string(char*)array。(我的示例代码如下所示)
例如我想要它
- 阿尔法贝
- 苹果
- 孩子
- 信号量
但是有了指针,所以当我读取矩阵的 1 行时,我得到了完整的单词
tensorflow - 不规则张量上的 Keras 自定义层以降低维度
我正在尝试编写一个自定义层来处理可变长度向量,并将它们减少到相同长度的向量。长度是预先知道的,因为可变长度的原因是我有几种不同的数据类型,我使用不同数量的特征进行编码。从某种意义上说,它类似于Embedding only for numeric values。我尝试过使用填充,但结果很糟糕,所以我正在尝试这种方法。
因此,例如,假设我有 3 种数据类型,我使用 3、4、6 个长度向量对其进行编码。
我尝试实现一个自定义层,如:
直接调用时似乎有效:
但是当我尝试将其合并到模型中时,它失败了:
和
我不确定如何实现这样的层,或者我做错了什么。
python - RNN 中 RaggedTensor 输入的输入形状问题
我从 python 列表中创建了参差不齐的张量,如下所示。
检查形状给了我:
TensorShape([10555,无,无])
张量形状([10555])
TensorSliceDataset 形状:((None, None), ()),类型:(tf.float64, tf.float32)>
BatchDataset 形状:((无,无,无),(无,)),类型:(tf.float64,tf.float32)>
我的问题是我无法弄清楚如何使用这种类型的数据集在 SimpleRNN 层中指定 input_shape。谢谢,
python - 有没有办法标准化一个参差不齐的张量?
我试过tf.linalg.normalize
了,它给了我一个值错误:
我也无法使tf.keras.layers.experimental.preprocessing.Normalization()
方法起作用。谢谢,
python - 来自不同长度列表列表的 xarray 变量
我有一个函数可以根据模型的各种输出创建一个 xarray 数据集。我收集的信息之一是列表列表(长度不同)。这个变量被称为并且与其他变量cids
具有相同的维度。repo_id
到目前为止,以下一直运行良好:
正如预期的那样,这会产生以下结果:
但是,我最近遇到了一个情况,我的变量中的列表长度cids
是相同的:
这会产生以下错误:
输入将不胜感激,不知道如何最好地处理这个。似乎 xarray 试图变得聪明,并假设的维度cids
不是repo_id
长度为 2,而是长度为 3 ......一个错误?
python - 在张量流中使用可变维度张量
我想构建一个张量占位符,具有维度的特征,比如说(10, a, a)
。这样features[i, :, :]
可以是任意平方张量。例如,features[0. :, :]
可能是维度的5*5
,并且features[1, :, :]
可以同时是维度8*8
的。我们如何使用 tensorflow 做到这一点?
为此,我找到了参差不齐的张量。但问题是,为了在参差不齐的张量中输入值,我将不得不在 python 中使用普通列表。在我的情况下,这个提要列表非常稀疏,没有办法压缩参差不齐的列表。
python - 用于列表列表的空间高效数据存储。元素是整数,所有列表的大小都不同
说我的数据看起来像这样
存储这段时间数据最节省空间的方式是什么?
我查看了 Numpy 文件,但 numpy 只支持统一长度数据
我查看了 Hdf5,它支持 1d 不规则张量,但不支持 2d
https://stackoverflow.com/a/42659049/3259896
因此,可以选择为 中的每个列表创建一个单独的 hdf5 文件thisList
,但我可能会拥有 10-2000 万个这些列表。
tensorflow - tf.keras.layers.Conv1D 是否支持 RaggedTensor 输入?
在 tensorflow conv1D 层文档中,它说;
'当将此层用作模型中的第一层时,提供一个 input_shape 参数(整数元组或无,例如 (10, 128) 用于 128 维向量的 10 个向量的序列,或 (None, 128) 用于可变 - 128 维向量的长度序列。
所以我知道我们可以输入可变长度序列,但是当我为 conv1D 层使用不规则张量输入时,它给了我一个错误:
ValueError:层 conv1d 不支持将 RaggedTensors 作为输入。
如果不是 RaggedTensors,可变长度序列的真正含义是什么?
谢谢,