我需要对tensorflow-keras模型进行分段预测。我的想法是将图像上传到S3桶中,并使用AWS服务,触发进程,进行预测,并将分段的预测掩码保存到新的S3桶中。
在开始时,我用下面的库创建了一些层,以运行模型:
问题是tensorflow版本(2.0.0b1)已经超过了服务的大小限制(250 MB)。因此,当我试图上传文件时,会出现一个大小错误。
我想我可以重写我的代码以避免分段-模型使用,也许只使用tensorflow.keras而不是Keras,但我仍然需要tensorflow,opencv和boto来连接服务器。
有人知道我该怎么做吗?
发布于 2020-06-12 13:59:45
更新: AWS现在提供了集装箱部署支持,允许10 on的Lambda,这将使得在AWS上运行更大的工作负载成为可能,AWS 也增加了短暂性存储可以运行到10 on。
对于不属于容器部署的AWS部署包,仍然存在AWS Lambda 250 of的硬限制。此配额适用于上载的所有文件,包括层和自定义运行时。
使用AWS,您可以配置内存量和进程运行的时间。函数在执行过程中可用的内存量为128 MB至3 008 MB,增量为64 MB。AWS Lambda按照配置的内存量线性分配CPU功率。在1,792 MB,一个函数的等效于一个完整的vCPU (一个vCPU-每秒学分)。这意味着AWS Lambda不是为CPU密集型工作负载设计的。此外,AWS Lambda目前不支持GPU。AWS还有其他限制,比如并发作业的数量。有关限制的完整列表,请访问本页面。
您看过亚马逊SageMaker以获得ML端点吗?使用亚马逊SageMaker,您可以指定要对其进行训练的实例类型,也可以指定要对其进行推理的实例。有了亚马逊SageMaker,你就可以访问AWS无敌芯片和其他了。亚马逊SageMaker也有可用的这里的限制。
还可以部署推断管道。
在您的用例中,您可以,将模型部署到Amazon端点。当图像进入存储桶触发一个调用Amazon SageMaker端点的AWS函数时,获取结果并根据需要继续处理。注意,Lambda函数为15分钟的最大运行时间。您可以使用AWS阶跃函数调用Amazon端点,然后调用另一个Lambda函数。AWS步骤函数允许您将AWS函数与调用分离。降低Lambda的运行时成本,并允许长时间运行作业。为了进一步降低成本,您可以使用AWS Step函数Express Workflow。
关于如何构建、测试和部署使用亚马逊SageMaker的模型的更多信息。下面是做你想要的事的一个示例实现。此示例一旦文件被丢弃到桶中,就会触发AWS Lambda函数。AWS函数启动一个Step函数进程,调用Amazon。结果更新一个表并发送一封电子邮件。
这篇文章解释了如何使用Amazon部署经过训练的Keras或TensorFlow模型。
https://stackoverflow.com/questions/62345067
复制相似问题