Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在自定义Tensorflow模型中打断循环(使用Keras)_Tensorflow_Machine Learning_Tensorflow2.0 - Fatal编程技术网

如何在自定义Tensorflow模型中打断循环(使用Keras)

如何在自定义Tensorflow模型中打断循环(使用Keras),tensorflow,machine-learning,tensorflow2.0,Tensorflow,Machine Learning,Tensorflow2.0,我正在Tensorflow 2.0中构建一个机器学习应用程序。 我试图通过在调用函数中迭代事实时中断for循环(如果满足条件)来优化计算效率,但它返回一个错误,即: OperatorNotAllowedInGraphError:不允许将tf.Tensor用作Pythonbool:AutoGraph未转换此函数。尝试直接用u/tf.函数装饰它。 (我还尝试在call方法中添加一个tf函数 有人知道如何在自定义tensorflow模型的调用函数中打破for循环并执行逻辑吗 我的代码 def呼叫(自我

我正在Tensorflow 2.0中构建一个机器学习应用程序。
我试图通过在调用函数中迭代事实时中断for循环(如果满足条件)来优化计算效率,但它返回一个错误,即:

OperatorNotAllowedInGraphError:不允许将
tf.Tensor
用作Python
bool
:AutoGraph未转换此函数。尝试直接用u/tf.函数装饰它。
(我还尝试在call方法中添加一个tf函数

有人知道如何在自定义tensorflow模型的调用函数中打破for循环并执行逻辑吗

我的代码
def呼叫(自我、输入、问题):
事件=tf.zero(形状=(self.batch\u大小,self.units))
记忆=问题
事实=self.split(self.transpose(self.cast(inputs,tf.float32),perm?(1,0,2)),self.facts_len)
对于范围内的uu(自我传递):
事实上,对于c:
c=tf.挤压(c)
g=自我注意(c、记忆、问题)
插曲=(
g*self.rnn(tf.expand_dims(c,-1),memory)[1]+(1-g)*
)
#生成下一个内存
_,memory=self.rnn(self.expand(插曲,-1),memory)
返回存储器

你应该能够在你的逻辑中使用
中断
。Keras将签名应用于
调用
,所以它应该可以工作,但我的猜测是你需要更改外循环:
for uuu.in tf.range(self.passes)
,如果中断在内循环中,那么确保
事实
也是一个张量


查看此项和FOC以了解更多详细信息。

您应该能够在逻辑中使用
break
。Keras将签名应用于
调用
,因此它应该可以工作,但我猜您需要更改外部循环:
用于tf.范围内的(self.passs)
,如果中断位于内部循环内,请确保
事实
也是张量


有关更多详细信息,请参阅本手册和focs。

发布完整的车型概要。请发布您的代码,并告诉我们您到目前为止尝试了什么。例如,您知道“中断”吗命令?您使用过吗?如果没有您提供的完整信息,我们无法回答此类问题。请下次附上所有必需的信息…@neelg现在呢?我建议提供一个独立的代码来重现该问题。一般来说,创建一个可被打破的循环的一种方法是使用
tf.while\u循环
。例如,在您的情况下,
tf.while\u loop
的条件可能是达到了
self.passes
,或者
事实发生了一些事情。发布完整的模型摘要。请发布您的代码并告诉我们您到目前为止尝试了什么。例如,您知道“中断”吗命令?您使用过吗?如果没有您提供的完整信息,我们无法回答此类问题。请下次附上所有必需的信息…@neelg现在呢?我建议提供一个独立的代码来重现该问题。一般来说,创建一个可被打破的循环的一种方法是使用
tf.while\u循环
。例如,在您的情况下,
tf.while\u loop
的条件可能是达到了
self.passes
,或者
事实发生了一些事情。