小编Jor*_*son的帖子

是否可以使用与 Eager-Graph 兼容的相同代码解决方案?

我正在尝试编写热切且图形兼容的代码。但是,关于如何执行此操作的在线信息很少,这是 TensorFlow网站上的文字脚注。此外,他们所写的内容令人困惑,说:

为 Eager Execution 编写的相同代码也将在图执行期间构建图。为此,只需在未启用 Eager Execution 的新 Python 会话中运行相同的代码即可。

这意味着可以使用相同的代码解决方案,其中唯一需要的更改是添加或删除tf.enable_eager_execution().

目前我tf.keras用来定义我的模型和tf.data我的输入管道。然而,许多急切操作在图形中不起作用,反之亦然。

例如,我会记录我epochs使用tf.train.Checkpoint(). 在急切模式下,恢复后我可以访问它epochs.numpy(),将其值分配给局部变量。但是,这不适用于图形,sess.run(epochs)因为在执行期间未定义值,因此需要图形。

同样,为了快速计算我的梯度,我需要使用某种形式的 autograd,在我的例子中tf.GradientTape()。这与图形不兼容,因为“tf.GradientTape.gradients() 不支持图形控制流”。

我看到tfe.py_func存在,但再一次,这仅在未启用eager时有效,因此无助于解决此问题。

那么,当eager和graph的许多方面似乎直接相互冲突时,我该如何做出相同的代码解决方案呢?

tensorflow

5
推荐指数
0
解决办法
220
查看次数

如何导出热切的执行模型?

完成我的模型后,我现在希望按照TensorFlow网站上的教程进行导出和部署。但是,没有迹象表明如何在急于执行的情况下执行此操作,因为我无法向提供会话或图形builder.add_meta_graph_and_variables()

是在我的代码需要热切和图形兼容的情况下,还是在我需要保存我的模型,将其导入会话并从中导出的情况下?

tensorflow tensorflow-serving

4
推荐指数
1
解决办法
474
查看次数

使用请求将带有json的numpy数组发布到flask应用

使用请求,我需要在一次发布中将带有json数据的numpy数组发送到我的flask应用程序。我该怎么做呢?

python flask python-requests

3
推荐指数
2
解决办法
2367
查看次数

现在加载在 Eager TensorFlow 中是否已损坏?

从 tf.keras.Model 继承的类中的权重目前似乎无法加载。我无法使用检查点从类外的 Example() 加载权重,因此我尝试在内部进行加载,所有帐户都应该这样做。它能够保存权重,就像在保存 Example() 时一样,但它仍然无法加载它们。这是我的模型代码:

class Example(tf.keras.Model):
    def __init__(self, cfg):
        super(Example, self).__init__()

        self.model = tf.keras.Sequential([
             ........layers.......
        ])

        # Create saver
        self.save_path = cfg.save_dir + cfg.extension
        self.ckpt_prefix = self.save_path + '/ckpt'
        self.saver = tf.train.Checkpoint(model=self.model)

    def call(self, x_in):
        x_out = self.model(x_in)
        return x_out

    def save(self):
        self.saver.save(file_prefix=self.ckpt_prefix)

    def load(self):
        self.saver.restore(tf.train.latest_checkpoint(self.save_path))
Run Code Online (Sandbox Code Playgroud)

这就是我用来检查它是否加载的内容:

example = Example()
if Path(self.example.save_path).is_dir():
            print(self.example.weights)
            print(self.example.model.weights)
            self.example.load()
            print(self.example.weights)
            print(self.example.model.weights)
Run Code Online (Sandbox Code Playgroud)

输出:

[]
[]
[]
[]
Run Code Online (Sandbox Code Playgroud)

这在 tensorflow 1.3 和 2.0 上都进行了测试,我可以确认第一批后权重不为空,并且它正在检查点/保存。

python-3.x tensorflow

3
推荐指数
1
解决办法
2000
查看次数