gpt4 book ai didi

Python 通用容器?

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:16 24 4
gpt4 key购买 nike

有人可以方便地将变量分组到给定对象下。

我的用例是 tensorflow,您通常需要先定义一个图形,然后再为其提供实际数据。为避免将图形变量的名称与数据变量的名称混淆,将它们全部分组在一个对象下很有用。我一直在做的是:

g = lambda: None
g.iterator = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(minibatch_size).make_initializable_iterator()
g.x_next, g.y_next = g.iterator.get_next()
g.data_updates = g.x_data.assign(g.x_next), g.y_data.assign(g.y_next)

除了当您使用 lambda: None 时,您的同事往往会生气和困惑。

有没有一种替代方法可以提供同样简洁的语法,但使用的东西比 lambda: None 更明显是一个容器?<​​/p>

我首先尝试让它们都成为一个类的静态成员,但问题是静态成员不能引用其他静态成员。 g=object() 会很好,但不允许您分配属性。

最佳答案

如果不值得定义一个专门的类,你可以使用types.SimpleNamespace ,这是一个专门设计用来保存属性的类。

g = types.SimpleNamespace()
g.iterator = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(minibatch_size).make_initializable_iterator()
g.x_next, g.y_next = g.iterator.get_next()
g.data_updates = g.x_data.assign(g.x_next), g.y_data.assign(g.y_next)

关于Python 通用容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49114899/

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