代码之家  ›  专栏  ›  技术社区  ›  btshrewsbury

是否知道如何提取tensorflow DNNRegressor模型并手动评估?

  •  0
  • btshrewsbury  · 技术社区  · 6 年前

    我试图在java实时上下文中使用DNNRegressor模型,不幸的是,这需要一个无垃圾的实现。看起来tensorflow light并没有提供无GC的实现。阻力最小的路径是提取权重并手动重新实现神经网络。是否有人尝试过从回归模型中提取权重并手动实现回归,如果有,您能否描述一下任何陷阱?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alexander Harnisch    6 年前

    我不太确定你的结论

    阻力最小的路径是提取权重并手动重新实现神经网络。

    实际上是真的。在我看来,您似乎想在Android移动应用程序中使用经过培训的模型。我个人对此知之甚少,但我相信有一些有效的方法可以做到这一点。

    然而,假设您确实需要提取权重,有多种方法可以做到这一点。

    实现这一点的一种直接方法是使用Tensorflows低级API实现您想要的确切网络,而不是使用罐装的 DNNRegressor 类(顺便提一下,已弃用)。这听起来可能不必要的复杂,但实际上很容易,而且好处是你可以完全控制。

    获取所有可训练变量的一般方法是使用Tensorflows trainable_variables 方法

    或者也许 this 可能对你有帮助。

    就陷阱而言,我真的不相信有任何陷阱。在一天结束时,您只需要存储一堆浮子。您可能应该确保使用适当的文件格式,如hdf5和足够的浮点精度。