我遵循了本教程,用C ++编写了一个自定义的tensorflow操作: https://www.tensorflow.org/guide/extend/op
在python端,我按如下方式调用操作:
op = custom_op(...)
op.run(session=K.get_session())
此代码放置在函数中,因此op
局部变量在超出范围时应被销毁。但是,当我将打印语句放在C ++操作类的析构函数中时,我看到它在Python程序的末尾而不是在函数调用的末尾被销毁。 K.clear_session()
也不会破坏它。
我的问题是我的自定义操作持有的资源应该早于此被销毁。在程序结束之前,我无法让这些资源保持活动状态。如何强制张量流破坏操作?
编辑:我正在使用Tensorflow 1.13和gcc 7.3.0。