问题标签 [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.
python - 对 TensorFlow 服务的 RaggedTensor 请求失败
我创建了一个使用 RaggedTensors 的 TensorFlow 模型。模型工作正常,在调用时model.predict
我得到了预期的结果。
我已将模型部署到 TensorFlow 服务服务器并使用以下代码调用:
但后来我收到以下错误:
我的型号说明:
我错过了什么?
更新:
检查saved_model_cli
输出后,我怀疑我应该将请求作为如下对象发送,但我不确定输入...
Update2 一个Colab来测试这个场景,一个下载模型的链接包含在 Colab 中。
更新 3:
正如@Niteya Shah 所建议的那样,我使用以下方法调用了 API:
并得到了结果(终于!):
然后使用相同的数据调用模型,如下所示:
并得到了不同的结果:
我想我还是不在。
python - 广播和连接不规则张量
我有一个参差不齐的尺寸张量[BATCH_SIZE, TIME_STEPS, EMBEDDING_DIM]
。我想用另一个形状张量的数据来增加最后一个轴[BATCH_SIZE, AUG_DIM]
。给定示例的每个时间步都会增加相同的值。
TIME_STEPS
如果每个示例的张量都没有参差不齐,我可以简单地重塑第二个张量,tf.repeat
然后使用tf.concat
:
这在衣衫褴褛时不起作用,emb
因为emb.shape[1]
它是未知的并且因示例而异:
ValueError:尝试将具有不受支持的类型 (<class 'NoneType'>) 的值 (None) 转换为张量。
目标是创建一个参差不齐的张量emb_aug
,如下所示:
有任何想法吗?
python - TensorFlow 从大型数据集中创建 tf.ragged.constant
拥有 50,000 个用户的 DF,每个用户都有不同的行数:
我正在使用以下代码创建一个tf.ragged.constant
:
该代码删除了 id 列并创建了用户行的参差不齐的常量。但是,这只适用于数据的一小部分。对于整个数据集,它需要很长时间,有时会导致我的机器崩溃。
按 id 分组并从其余列创建参差不齐的常量的正确方法是什么?
tensorflow - (tensorflow 2.4.1)如何得到一个参差不齐的张量具有确定的最后一维形状?
像这样:
'''
''' 我得到了一个形状为 [4, None, None] 的张量,但我期望 [4, None, 3],
tensorflow - Tensorflow:如何使用不规则张量作为正常张量的索引?
我有一个 2D RaggedTensor,其中包含我想要的完整张量每一行的索引,例如:
进入
给
我怎样才能以最有效的方式实现这一点(最好只使用tf
函数)?我相信像这样gather_nd
的东西能够使用 RaggedTensors,但我无法弄清楚它是如何工作的。
tensorflow - 重塑 TensorFlow RaggedTensor
我有一个形状为 (batch_size, None, None, 100) 的 4D RaggedTensor,我想从中创建一个形状为 (batch_size, None, 100) 的张量。所以基本上合并第一个和第二个维度,但不包括任何填充([1,2,3],[4] => [1,2,3,4])并且不首先转换为密集张量。有没有办法做到这一点?如果不是什么可以解决?
python - TPU 上的 RaggedTensor
我正在尝试使用将RaggedTensortf.keras.layers.Input
作为输入( )作为输入的 TensorFlow 训练神经网络。它在 CPU 和 GPU 上运行良好,但我真的很努力让它在 TPU 上运行。我想知道你们中的一些人是否设法使它工作(不一定要寻找直接的解决方案,尽管它会很棒,一些工具提示已经很棒了!)。到目前为止,错误消息对我来说已经足够明确了,但我现在还在为如何走得更远而苦苦挣扎。
到目前为止我做了什么:
- 我
tf.data.Dataset
用来从 TF_Records 读取数据,但我需要将其显式转换为DistributedDataset以禁用 prefecting。
- 通过允许软设备放置,我得到了
Compilation failure: Detected unsupported operations when trying to compile graph ... on XLA_TPU_JIT: RaggedTensorToTensor
可以(某种程度上)修复的问题:
- 我现在陷入困境
Compilation failure: Input 1 to node '.../RaggedReduceSum/RaggedReduce/RaggedSplitsToSegmentIds/Repeat/SequenceMask/Range' with op Range must be a compile-time constant.
。我完全理解为什么会出现此错误,我完全了解TPU 上的可用操作,特别是大多数动态操作应在编译时确定以在 TPU 上运行。但我想不出我怎么能用 TPU 来使用那些参差不齐的张量......
任何想法将不胜感激:)
PS:自从 2020 年 7 月的这个答案以来,我还没有看到 TensorFlow 团队关于 TPU 上 RaggedTensors 的太多消息,但我可能已经错过了很多关于它的消息……如果我指向 git 线程对我来说已经很棒了可以调查更多。
python - 使用 tf.newaxis 进行不规则张量切片不起作用。tf.expand_dims 确实如此
我有一个参差不齐的张量seq
(num_sentences、num_words、word_dim)。如果我想在末尾添加一个新轴(维度) slice seq[..., tf.newaxis]
,它会失败并出现以下错误。
tf.expand_dims(seq, -1)
但是有效。
对此有解释吗?另外,我宁愿使用切片语法,因为它更具可读性——如果第一个 arg ofexpand_dims
更复杂——你必须axis
在最后的某个地方写参数(其他轴参数通常会累积......)。
编辑:复制错误:
tensorflow - Tensorflow:用每行中给定数量的元素重塑一维张量
我想在 Tensorflow 2 中将一维张量转换为二维形状,并给出每行中的元素数。我找到了一个像这样使用 RaggedTensor 的解决方案
c1 的最终值应该是
我发现当输入张量的大小很大时它会拒绝工作,并且性能不够好。
还有其他高性能解决方案吗?
tensorflow - tf.ragged.constant() API 中使用的 ragged_rank 参数是什么?
我不知道ragged_rank
传递给的参数的作用是什么tf.ragged.constant()
。
玩它,我尝试了以下代码:
在哪里ragged_rank=1
通过并产生
另一方面,如果我通过ragged_rank=2
,
结果看起来与我有些相似,但与上述不同:
此外,我发现以下代码会产生错误
除非我通过ragged_rank=2
,否则结果: