SKIL Documentation

Skymind Intelligence Layer

The community edition of the Skymind Intelligence Layer (SKIL) is free. It takes data science projects from prototype to production quickly and easily. SKIL bridges the gap between the Python ecosystem and the JVM with a cross-team platform for Data Scientists, Data Engineers, and DevOps/IT. It is an automation tool for machine-learning workflows that enables easy training on Spark-GPU clusters, experiment tracking, one-click deployment of trained models, model performance monitoring and more.

Get Started

TensorFlow Models

SKIL 1.0.3 uses custom JVM bindings of the TensorFlow C++ API (version 1.4) and imposes no limitations. Future versions of SKIL will use SameDiff functionality within ND4J to execute imported models.

Import from TensorFlow

See the Import Models page.

TensorFlow Word2Vec Support

If the lookup_embedding function is used, then SKIL should be able to import the model into the model server.

Prerequisite for Deployment

In order to deploy a TensorFlow model the graph and its associated weights have to be stored in a single pb file. TensorFlow models can be "frozen" with the freeze_graph.py script available under tensorflow.python.tools.

freeze_graph can be run on the command line or within a Python script. It takes a graph definition and a set of checkpoints and freezes them in a single file that can then be deployed with a few clicks in SKIL.

~/tensorflow/bazel-bin/tensorflow/python/tools/freeze_graph \
  --input_graph=graph_definition.pbtxt \
  --output_graph=file_for_frozen_model.pb \
  --input_checkpoint=saved_ckpt \
  --output_nodes_names=output_node_name