问题标签 [ragged-tensors]

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 回答
106 浏览

python - 使用 RaggedTensor 输入的 TensorFlow(2.4.0) 模型训练问题

我正在尝试训练一个 TF 模型,该模型将查看客户关于食品类别的购物车值,并预测客户接下来会感兴趣的食品类别。

食物种类只有5种:

购物车中已有的食物类别是RaggedTensor字符串类型。

型号代码:

模型正在构建中。


但也作为fit()我收到此错误的一部分:

在卷积开始之前,我已经尝试将to_tensor()调用放在不同的代码位置,但同样的错误仍然存​​在。

从生成器输出可以清楚地看出,inputs['categories_of_assumed_cart_flattened']始终是类型tf.RaggedTensor

我不知道问题是什么;非常感谢任何帮助!提前谢谢了!

0 投票
0 回答
38 浏览

tensorflow - 如何将二维数组列表(一维变化)转换为参差不齐的张量?

x 是二维数组的列表,每个二维数组是一系列 6 元组。

在此处输入图像描述

我想将 x 转换为参差不齐的张量。我尝试 xrag = tf.ragged.constant(x)

在此处输入图像描述

得到xragshape = (895, None, None)但它shape应该是(895, None, 6)。可以吗?或者如何改进?

0 投票
0 回答
29 浏览

python - TensorFlow Ragged Boolean Mask 将常量维度设置为无

我正在研究 PointNet++ 的实现,其中一个步骤是找到r围绕质心列表的半径中的所有点。我可以创建一个布尔掩码,判断每个点是否在r每个质心的单位内,但是当我尝试从该布尔掩码创建一个参差不齐的张量时,我的None维度比我应该的要多。

我有两个张量,x它们是点并且具有形状(batch_size,num_points,xyz_pos),并且mask具有形状(batch_size,num_points,num_centroids)(batch_size,centroids,(num_selected_points),xyz_pos)当我完成时,理想情况下我想要num_selected_points一个参差不齐的形状。目前,我正在尝试实现这一点,(num_centroids,batch_size,(num_selected_points),xyz_pos)因为该功能更简单,而且我在参差不齐的尺寸方面遇到了麻烦。

出于某种原因,我的代码导致(num_centroids,(batch_size),(num_selected_points),xyz_pos), 其中batch_sizenum_selected_points都是参差不齐的尺寸。这对我来说似乎很奇怪,因为(如下面的代码所示),batch_size维度的长度是恒定的。这似乎是 TensorFlow 处理不规则张量的方式的副作用map_fn,但我不确定。我怎样才能确保只有一个维度 ( num_selected_points) 是参差不齐的,而所有其他维度都是不变的?

0 投票
1 回答
280 浏览

tensorflow - 转换为张量后,参差不齐的张量没有 len()

我正在对具有可变尺寸的图像堆栈训练深度学习模型。(Shape = [Batch, None, 256, 256, 1]), 其中 None 可以是可变的。

我使用 tf.RaggedTensor.merge_dimsions(0,1)将参差不齐的张量转换为 的形状[None, 256, 256, 1]以运行到预训练的 keras CNN 模型。

但是,使用 KerasLayer API 会导致以下错误:TypeError: the object of type 'RaggedTensor' has no len()

当我.merge_dimsions在 KerasLayer 之外应用并将张量传递给相同的预训练模型时,我没有收到此错误。

这是一个演示该问题的 colab 笔记本。https://colab.research.google.com/drive/1kN78mf4_oNqxWOluV054NlqmakC5msli?usp=sharing

0 投票
1 回答
121 浏览

python-3.x - 不规则张量上的 Tensorflow tf.map_fn 失败,“RaggedTensor”类型的对象没有 len

这个 Tensorflow 文档给出了tf.map_fn在不规则张量上使用的示例,该示例适用于 Tensorflow 2.4.1 及更高版本:

但是,以下示例在 Tensorflow 2.4.1 或 Tensorflow 2.5 中运行时会导致错误“'RaggedTensor' 类型的对象没有 len”:

有没有办法使这项工作?我不明白抛出的错误。一般来说,我试图通过映射一个用户定义的函数来获得完全的并行性,该函数在一个参差不齐的张量上只有 Tensorflow 操作,结果是参差不齐的张量。

0 投票
0 回答
27 浏览

python - TF2 在@tf.function 中枚举参差不齐的张量

我的目标是将 RaggedTensor 沿其第一个维度拆分为张量字典。下面的示例代码可以正常工作,直到它被 @tf.function 修饰。然后,它会产生一个令人困惑的错误:ValueError: slice index 2 of dimension 0 out of bounds。对于 '{{node RaggedGetItem_2/strided_slice_2}} ....' 输入形状:[2]、[1]、[1]、[1] 和计算输入张量:输入[1] = <2>,输入[2] = <3>,输入[3] = <1>。

有人可以解释发生了什么吗?它与python的副作用有关吗?

谢谢!

0 投票
0 回答
18 浏览

keras - keras 中具有可变长度序列和参差不齐的张量输入的自定义注意层

我是深度学习和编写模型的新手,最终我想使用 lstm 和注意力机制按时间提取输入权重。我的数据是具有可变长度序列(多对一)的时间序列数据和分类问题。

我的输入形状是(None , number of features) =(None,11) 我使用了参差不齐的张量keras框架,并且在尝试使模型工作时遇到了尺寸问题。

我不确定在构建模型之前如何查看每一层的形状,我不确定问题出在哪里。

这是我尝试使用的代码

错误

0 投票
0 回答
39 浏览

matlab - 如何将较小的球体放入 3D 形状(如米老鼠)中?

我正在研究一个问题,它接受 3D STL 文件 -> 形状和 (rmin -> 最小半径) 的参数并适合形状内的最大球体数量。该函数应输出位置和半径 (x,y,z,r)。一个这样的程序称为 CLUMP-https://www.mathworks.com/matlabcentral/fileexchange/98314-clump-code-library-to-generate-multi-sphere-particles

但是,对于米老鼠类型的形状,该团块的性能并不好。我在下面附上我的发现。我的目标是让反应矩阵的TensorA中心成为对角线,其余元素为零。

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
52 浏览

tensorflow - 如何使用 ragged-tensor 在 tensorflow2 中实现以下循环代码?

ind1,ind2,ind3 可以合并为一个愤怒的张量。但是用于每个 ind 的 g 的形状仍然不统一。我知道解决这个问题的一种方法是将 ind1、ind2 和 ind3 扩展到 g 的相同形状。但是这种方法会消耗过多的 GPU 内存。

有没有一种方法可以通过使用不规则张量在一个函数中实现上述代码,例如:ind=tf.ragged.constant([ind1,ind2,ind3]) f=tf.gather_nd(g,ind)

0 投票
0 回答
58 浏览

python - sklearn.model_selection.train_test_split() 无法拆分 tf 不规则张量

我已经被这个问题困了一段时间了。基本上,我有一个 (sample, [frame], feature) 的参差不齐的张量作为我的数据集,其中每个视频的帧数不同,但每个帧中的特征是一致的。尝试使用 train_test_split 拆分数据集时出现错误。

这是错误信息

我的一些同事建议我在最后一帧/第一帧中使用填充,或者复制整个视频以使其与其他视频的长度相同,这样我就可以制作相同长度的张量。但我对这个建议感到担忧。

所以我的问题是我可以在不使用填充或复制整个视频的情况下解决这个问题吗?

谢谢!