kaf*_*aso 2 mask shape tensorflow
boolean_mask 的文档说必须静态知道掩码的形状。但是如果你这样做
mask.set_shape([None])
tf.boolean_mask(tensor, mask)
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常。有什么理由不这样做吗?
仔细查看文档会发现它涉及掩码的维度,而不是它的整个形状:
mask: KD 布尔张量,K <= N 和 K 必须是静态已知的。
您的蒙版现在有 size None,这意味着它的静态形状是完全未知的,包括尺寸。您的选择是确保掩码的维度是静态已知的(例如,确保其由输出维度已知的操作生成,或提供具有已知维度的占位符),或强制执行有关您的大小的信息知道,但在构建计算图时无法推断出来。后者您可以通过set_shape.
当您运行 时mask.set_shape([None]),您正在执行一个假设,即掩码的维数将始终为 1(因为None位于括号中),尽管元素数量未知。如果您确定您的蒙版将始终是一维的,则可以这样做。
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |