从 x
或 y
返回元素,具体取决于 condition
。
用法
tf.compat.v1.where(
condition, x=None, y=None, name=None
)
参数
-
condition
bool
类型的Tensor
-
x
一个可能与condition
具有相同形状的张量。如果condition
是 rank 1,则x
可能有更高的 rank,但它的第一个维度必须与condition
的大小匹配。 -
y
与x
具有相同形状和类型的tensor
。 -
name
操作名称(可选)
返回
-
与
x
,y
具有相同类型和形状的Tensor
,如果它们不是None。否则,形状为Tensor
的(num_true, rank(condition))
。
抛出
-
ValueError
当x
或y
中的一个恰好为非无时。
迁移到 TF2
警告:这个 API 是为 TensorFlow v1 设计的。继续阅读有关如何从该 API 迁移到本机 TensorFlow v2 等效项的详细信息。见TensorFlow v1 到 TensorFlow v2 迁移指南有关如何迁移其余代码的说明。
此 API 与即刻执行和 tf.function
兼容。但是,这仍然是最初为 TF1 设计的遗留 API 端点。要迁移到fully-native TF2,请将其用法替换为tf.where
,它直接向后兼容tf.compat.v1.where
。
但是,tf.compat.v1.where
比 tf.where
更具限制性,要求 x
和 y
具有相同的形状,并返回与 x
, y
具有相同类型和形状的 Tensor
(如果它们都是非没有)。
tf.where
将接受不同形状的 x
, y
,只要它们可以相互广播并与 condition
一起广播,并将返回一个 Tensor
形状广播来自 condition
, x
和 y
。
例如,以下内容适用于 tf.where
但不适用于 tf.compat.v1.where
:
tf.where([True, False, False, True], [1,2,3,4], [100])
<tf.Tensor:shape=(4,), dtype=int32, numpy=array([ 1, 100, 100, 4],
dtype=int32)>
tf.where(True, [1,2,3,4], 100)
<tf.Tensor:shape=(4,), dtype=int32, numpy=array([1, 2, 3, 4],
dtype=int32)>
如果 x
和 y
都为 None,则此操作返回 condition
的真实元素的坐标。坐标以二维张量返回,其中第一维(行)表示真实元素的数量,第二维(列)表示真实元素的坐标。请记住,输出张量的形状可能会根据输入中有多少真实值而有所不同。索引以行优先顺序输出。
如果两者都不是None,则x
和y
必须具有相同的形状。如果 x
和 y
是标量,则 condition
张量必须是标量。如果 x
和 y
是更高阶的张量,则 condition
必须是大小与 x
的第一个维度匹配的向量,或者必须具有与 x
相同的形状。
condition
张量充当掩码,根据每个元素的值选择输出中的相应元素/行是否应取自 x
(如果为真)或 y
(如果为假)。
如果 condition
是一个向量并且 x
和 y
是更高等级的矩阵,那么它选择从 x
和 y
复制哪一行(外部维度)。如果 condition
与 x
和 y
具有相同的形状,则它选择从 x
和 y
复制哪个元素。
相关用法
- Python tf.compat.v1.while_loop用法及代码示例
- Python tf.compat.v1.wrap_function用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.Variable.eval用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.layers.conv3d用法及代码示例
- Python tf.compat.v1.strings.length用法及代码示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代码示例
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代码示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代码示例
- Python tf.compat.v1.variable_scope用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.as_numpy_iterator用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.placeholder用法及代码示例
- Python tf.compat.v1.layers.Conv3D用法及代码示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.where。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。