【问题标题】:Saving and restoring neural network weights in production在生产中保存和恢复神经网络权重
【发布时间】:2018-07-28 18:13:01
【问题描述】:

我目前正在构建一个使用神经网络的后端。 我需要保存权重(可能是 2 维、3 维或 4 维)并恢复它们。 我目前正在使用 heroku,因此需要将它们保存到 PostgreSQL 或 S3 存储桶并在每次系统启动时检索它。

在生产环境中为 ML 应用程序存储和恢复权重的首选解决方案是什么,其中权重可能是数十万个条目,而矩阵可能远远超过 100mb?

【问题讨论】:

    标签: heroku amazon-s3 neural-network save production


    【解决方案1】:

    我们确实在 S3 上存储神经网络权重,而且效果很好。

    我们还会在使用新数据进行训练并更新到 s3 时更新这些权重。实时系统检查修改后的 s3 对象并根据存储的数据更新权重/神经网络。

    https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html

    aws s3api head-object --bucket my-bucket --key object.h5

    您还可以启用加速端点以提高速度。如果您通过 Internet 下载对象,则需要这样做。

    https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html

    希望对你有帮助。

    【讨论】:

    • 你有没有下载过大约 1GB 的东西,你知道这在生产中是否可行吗?
    • 在生产中非常可行。处理错误并在需要时重试。 1 GB 对于 S3 来说不算什么。如果您想优化速度,您可以将它们拆分为单独的对象并并行下载它们并在客户端加入它们。您还可以从对象中读取部分数据,拆分和连接它们非常容易。
    【解决方案2】:

    仅出于完整性考虑:使用 Postgres 和 Postgres 数据类型 ARRAY,还可以存储用于生产的大型矩阵。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2015-06-25
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多