tensorflow2.0中如何通过名称查找变量

How to find a variable by name in tensorflow2.0

tensorflow 2.0好像去掉了函数tf.global_variables()。那么我的问题是:如何在模型中找到具有给定名称的变量? tensorflow 2.0有没有提供这个功能?

目前,我们的训练框架无法访问构建模型的代码。它使用 tf.global_variables() 在加载的模型中查找各种变量,以推入和拉出训练数据或结果。 tensorflow 2.0能支持这种框架吗?

Would tensorflow 2.0 be able to support this kind of framework?

不,不会。

Tensorflow 2.0 的第一个设计选择之一是完全删除全局集合(例如 tf.global_variables()),转而采用 Python-centric 方法,即使用 Python 携带的对象他们自己的变量。

现在推荐的做法是构建一个 Keras 模型,并通过使用 Python 对象在代码中的任何地方使用相同的模型。 您可以通过访问 model.trainable_variablesmodel.non_trainable_weights.

来访问对象的可训练和 non-trainable 变量

简而言之,您必须开始将代码库迁移到面向对象的方法,因为 tensorflow 的 1.x 方法(依赖于全局集合、按名称获取变量等)不会2.0 中不可用。