Python tf.selectV2的目的和限制是什么
与TF不同,TF文档只是简单地给出API,没有任何描述,而TF.Select更具描述性Python tf.selectV2的目的和限制是什么,python,tensorflow,Python,Tensorflow,与TF不同,TF文档只是简单地给出API,没有任何描述,而TF.Select更具描述性 参见vs.运营商的广播行为有所不同。您可以在中看到它们的具体实现,但阅读中的解释可能更有用: //如果“条件”的对应值为 //true或“y”的值(如果为false)。存在有效的条件输入大小: // // 1. 相同的形状(在这种情况下,选择是元素式的),或 // 2. 条件必须为秩1且在第一维度上匹配,或 // 3. 条件是标量 TfLiteRegistration*寄存器_选择(){ 静态TfLiteRe
参见vs.运营商的广播行为有所不同。您可以在中看到它们的具体实现,但阅读中的解释可能更有用:
//如果“条件”的对应值为
//true或“y”的值(如果为false)。存在有效的条件输入大小:
//
// 1. 相同的形状(在这种情况下,选择是元素式的),或
// 2. 条件必须为秩1且在第一维度上匹配,或
// 3. 条件是标量
TfLiteRegistration*寄存器_选择(){
静态TfLiteRegistration={select::SelectInit,select::SelectFree,
选择::选择准备,
select::SelectEval};
返回&r;
}
//SelectV2 op选择“x”的值,如果“条件”的对应值
//为true,如果为false,则为“y”的值。存在有效的条件输入大小:
//
// 1. 相同的形状(在这种情况下,选择是元素式的),或
// 2. “条件”、“x”和“y”之间的可广播形状。
TfLiteRegistration*寄存器\u选择\u V2(){
静态TfLiteRegistration={select::SelectInit,select::SelectFree,
选择::选择准备,
select::SelectEval};
返回&r;
}
这些操作用于实现tf.where
,它改变了TensorFlow 1.x和2.x之间的行为。有关进一步的说明,请参阅和的文档。在1.x版本中,它表示:
如果两者都不是None,x
和y
必须具有相同的形状。如果x
和y
是标量,则条件
张量必须是标量。如果x
和y
是更高秩的张量,则条件
必须是大小与x
第一维度匹配的向量,或者必须具有与x
相同的形状
而对于2.x版本,它是:
如果提供了x
和y
(两者都有非无值):
将从所有三个形状都要显示的condition
、x
和y
的形状中选择一个输出形状