Skip to content
run tensorflow on lambdas (aws, zeit now, ...)
JavaScript Shell HCL
Branch: master
Clone or download
Latest commit bdec40a Jul 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github tfjs-lambda -> tensorflow-lambda Apr 1, 2019
scripts group paths in a constants.js file Mar 31, 2019
tfjs-node refactor Mar 31, 2019
.gitignore use npm to publish Mar 13, 2019
.prettierrc first commit Mar 12, 2019
constants.js group paths in a constants.js file Mar 31, 2019
index.js add check for `now dev` environment Jul 14, 2019
logo.png add logo to readme Apr 1, 2019
package.json 1.0.2 Jul 14, 2019
readme.md update readme Jul 14, 2019
yarn.lock first commit Mar 12, 2019

readme.md

tensorflow-lambda

Usage

First, install the package:

yarn add tensorflow-lambda

You can then use it like this:

const loadTf = require('tensorflow-lambda')

const tf = await loadTf()

// you get the same `tf` object that would get if you were doing:
// const tf = require('@tensorflow/tfjs')

tf.tensor([1, 2, 3, 4]).print()

Have a look at these examples :

Local usage

When not used in a lambda environment (for example, locally on your computer when you're developing), tensorflow-lambda will require @tensorflow/tfjs-node instead of deflating a pre-compiled version in /tmp.

Therefore, you need to install @tensorflow/tfjs-node to use this package locally:

yarn add @tensorflow/tfjs-node --dev

You can then use the package the same way you would use it in a lambda environment locally.

Have a look at these lines to understand how it detects if it runs in a lambda environement.

How it works ?

The package contains a zipped and compressed version of all the dependencies and binaries needed to run @tensorflow/tfjs-node on AWS Lambda (these dependencies are built with Github Actions).

During cold start, the files are deflated in /tmp and required in your node program.

Motivation

@tensorflow/tfjs works with AWS Lambda but the main problem is that it is slow very slow when used in node. On the other hand, @tensorflow/tfjs-node is fast when used with node but it is >140mo and it does not fit under AWS Lambda's size limit (50mo) and it needs to be pre-compiled for lambda for it to work in a lambda environment.

I was looking for an easy way to use tensorflowjs with lambda and I couldn't find any, so I made this package.

You can’t perform that action at this time.