gpt4 book ai didi

class - 如何使用 TensorFlow session 作为类属性

转载 作者:行者123 更新时间:2023-12-01 03:21:48 25 4
gpt4 key购买 nike

我使用 session 作为我类(class)的属性,如

self.sess = tf.Session()

或者
self.sess = tf.InteractiveSession()

session 属性用于多个功能,例如
def get_loss(self, input_data):
return self.sess.run(self.loss, {self.data:input_data})

我知道在某个时候必须关闭 session 。当将 session 用作类的属性时,这也适用吗?我需要在某处使用“close_session”函数吗?如果是,我应该把它放在类里面的什么位置?

遗憾的是,我在 session 中找不到任何作为类属性的东西,所以我很感谢你的任何建议。

最佳答案

你应该实现一个 close()__exit__()调用 self.sess.close() 的成员函数.然后像使用 Session 一样使用您的对象:

with MyClass() as myobj:
...

编辑(增加详细级别)

关于python的 with声明,它的用处以及如何构建兼容的类,有 plenty of resources out there .它的用途基本上是为了巧妙地处理一个对象资源的生命周期。

使用上下文管理器(通常用 with 语句处理的对象)作为类的成员函数的一种干净的方法是使该类本身成为上下文管理器。

如果你只是打开一个 Session对象的成员函数中的上下文,则该对象(无论如何其资源)的有效生命周期以 with 结束。块:实际上,此 session 对象不是类成员,而只是函数的局部变量。如果您想使用相同的 Session在你的类的几个成员函数中,你需要延长 Session 的生命周期。资源超出单个功能,并通过让您的类成为上下文管理器来让资源由您的类处理。

关于class - 如何使用 TensorFlow session 作为类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44646366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com