在AWS Lambda(Node.js)上运行TensorFlow.js(tfjs-node)

时间:2020-01-24 15:43:42

标签: node.js tensorflow aws-lambda aws-lambda-layers tfjs-node

是否可以在AWS Lambda上运行TensorFlow.js(Node.js版本-tfjs-node)?我尝试将tfjs-node部署为AWS Lambda层,但超出了允许的256 MB大小限制。

2 个答案:

答案 0 :(得分:1)

最后,我设法将tfjs-node的先前版本(1.1.2)之一部署到AWS Lambda层。显然,这是最后一个版本,足够小以致于无法使用。

要自己构建它,可以使用以下脚本。您需要在计算机上安装Docker才能为AWS Linux构建它:

#!/bin/sh

# cleaning previous build
rm -rf ./layer

# installing tfjs-node with docker
docker run --rm -v $PWD:/var/task lambci/lambda:build-nodejs12.x npm install @tensorflow/tfjs-node@1.1.2 --no-package-lock --prefix layer/nodejs

# zipping layer
cd ./layer && zip -qrX ./tfjs-node-layer.zip .

# removing unzipped module
rm -rf ./layer/nodejs

这将在您的工作目录中创建./layers/tfjs-node-layer.zip。您需要将其上传到s3存储桶,并从s3存储桶URL创建新的AWS Lambda层。

答案 1 :(得分:1)

AWS Lambda函数可以挂载EFS(自2020年6月开始)。您可以使用EFS加载大于AWS Lambda的250 MB程序包部署大小限制的库或程序包。

有关设置的详细步骤,请参见:https://aws.amazon.com/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/