All Projects → knime → knime-tensorflow

knime / knime-tensorflow

Licence: other
KNIME Deep Learning - Tensorflow Integration

Programming Languages

java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to knime-tensorflow

knime-deeplearning
KNIME Deep Learning Integration
Stars: ✭ 19 (+5.56%)
Mutual labels:  integration, knime, deeplearning
knip
KNIME Image Processing Extension
Stars: ✭ 45 (+150%)
Mutual labels:  integration, knime
bynder-php-sdk
SDK in PHP for integration with Bynder
Stars: ✭ 14 (-22.22%)
Mutual labels:  integration
Cuba.jl
Library for multidimensional numerical integration with four independent algorithms: Vegas, Suave, Divonne, and Cuhre.
Stars: ✭ 65 (+261.11%)
Mutual labels:  integration
awesome-conformal-prediction
A professionally curated list of awesome Conformal Prediction videos, tutorials, books, papers, PhD and MSc theses, articles and open-source libraries.
Stars: ✭ 998 (+5444.44%)
Mutual labels:  deeplearning
meilisearch-symfony
Seamless integration of Meilisearch into your Symfony project.
Stars: ✭ 65 (+261.11%)
Mutual labels:  integration
genetic deep learning
No description or website provided.
Stars: ✭ 13 (-27.78%)
Mutual labels:  deeplearning
mail2most
watch emails and send them to mattermost
Stars: ✭ 54 (+200%)
Mutual labels:  integration
TensorFlow20-Notes
TensorFlow 2.0 Various notes and tutorials
Stars: ✭ 14 (-22.22%)
Mutual labels:  deeplearning
Savior
(WIP)The deployment framework aims to provide a simple, lightweight, fast integrated, pipelined deployment framework for algorithm service that ensures reliability, high concurrency and scalability of services.
Stars: ✭ 124 (+588.89%)
Mutual labels:  deeplearning
Malware-Detection
Deep Learning Based Android Malware Detection Framework
Stars: ✭ 29 (+61.11%)
Mutual labels:  deeplearning
docs-searchbar.js
Front-end search bar for documentation with Meilisearch
Stars: ✭ 128 (+611.11%)
Mutual labels:  integration
reference-methodology
Integration projects today follow a time-consuming waterfall model, ill-suited to solving complex integration challenges. In response, WSO2 has developed organizational, project management, and technical expertise to help IT organizations transform integration projects to a more efficient and scalable continuous agile approach.
Stars: ✭ 46 (+155.56%)
Mutual labels:  integration
Baidu-Dog2017
http://js.baidu.com/
Stars: ✭ 37 (+105.56%)
Mutual labels:  deeplearning
modules
Java & REST API's for creating and running integrations
Stars: ✭ 16 (-11.11%)
Mutual labels:  integration
66Days NaturalLanguageProcessing
I am sharing my Journey of 66DaysofData in Natural Language Processing.
Stars: ✭ 127 (+605.56%)
Mutual labels:  deeplearning
MDSL-Specification
A domain-specific language to specify (micro-)service contracts, data representations and endpoints.
Stars: ✭ 35 (+94.44%)
Mutual labels:  integration
naas
⚙️ Schedule notebooks, run them like APIs, expose securely your assets: Jupyter as a viable ⚡️ Production environment
Stars: ✭ 219 (+1116.67%)
Mutual labels:  integration
gan deeplearning4j
Automatic feature engineering using Generative Adversarial Networks using Deeplearning4j and Apache Spark.
Stars: ✭ 19 (+5.56%)
Mutual labels:  deeplearning
smd
Simple mmdetection CPU inference
Stars: ✭ 27 (+50%)
Mutual labels:  deeplearning

Image KNIME® Deep Learning - TensorFlow Integration

This repository contains the plugins for the KNIME TensorFlow Integration which contains a set of KNIME nodes for executing TensorFlow models in KNIME.

Overview

The extension contains the following nodes:

  • The TensorFlow Network Reader node for reading TensorFlow SavedModels.
  • The TensorFlow Network Writer node for writing TensorFlow SavedModels.
  • The Keras to TensorFlow Network Converter node for converting Keras models to TensorFlow.

Additionally, the DL Python nodes provided in KNIME Deep Learning can be used to create, edit, execute and train models with user-supplied Python scripts.

Workflow Screenshot

TensorFlow 2 Python Bindings

The KNIME TensorFlow Integration can be used with the DL Python Network nodes which allow you to create, train and modify a TensorFlow model using the powerful TensorFlow Python API.

To make use of a TensorFlow 2 function it must be wrapped into a tf.keras.Model.

Required Python Packages

  • tensorflow>=2.2.0
  • tensorflow-hub (optional for using Models from the TensorFlow Hub)

Note that this package provides GPU support on Windows and Linux with CUDA Toolkit 10.1 and cuDNN >= 7.6.

Example

Create a TensorFlow 2 model:

import tensorflow as tf
import tensorflow_hub as hub

inp = tf.keras.layers.Input((224,224,3))

# Use a tf.keras layer
x = tf.keras.layers.Conv2D(3, 1)(inp)

# Use a Model from the TensorFlow Hub
hub_url = "https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/4"
x = hub.KerasLayer(hub_url, trainable=False)(x)

# Use a TensorFlow Op
x = x + 10.0
x = tf.math.subtract(x, 10.0)

# Use another model
m = tf.keras.Sequential([
	tf.keras.layers.Dense(100),
	tf.keras.layers.Dense(10)
])
x = m(x)

# Create the output model
output_network = tf.keras.Model(inp, x)

Train a TensorFlow 2 model:

# Get the input network
model = input_network

# Get the training data
x_train = input_table.iloc[:,:4].values
y_train = input_table.iloc[:,5:].values

# Compile the model (Specify optimizer, loss and metrics)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Train the model
model.fit(x=x_train, y=y_train, batch_size=8, epochs=20)

# Assign the trained model to the output
output_network = model

Execute a TensorFlow 2 model:

# Get the input data
x = input_table.iloc[:,:4].values

# Execute the model
y = input_network.predict(x)

# Create the output table
output_table = pd.DataFrame({'output': y[:,0]})

TensorFlow 1 Python Bindings (Legacy)

The KNIME TensorFlow Integration can be used with the DL Python Network nodes which allow you to create, train and modify a TensorFlow model using the powerful TensorFlow Python API.

The KNIME TensorFlow Integration provides a TFModel object to Python whenever a model is loaded into Python and requires you to set a TFModel object whenever a model should be returned to KNIME for further usage.

Required Python Packages

  • tensorflow or tensorflow-gpu (version: 1.13.1)

Note that newer or older versions can cause problems because the TensorFlow for Java version used is 1.13.1.

Example

Create a TensorFlow model:

import tensorflow as tf
from TFModel import TFModel

# Create a graph
graph = tf.Graph()

# Set the graph as default -> Create every tensor in this graph
with graph.as_default():

    # Create an input tensor
    x = tf.placeholder(tf.float32, shape=(None,4))

    # define the graph...

    # Create an output tensor
    y = tf.nn.softmax(last_layer)

# Create the output network
output_network = TFModel(inputs={ 'input': x }, outputs={ 'output': y }, graph=graph)

Use/Train/Edit a TensorFlow model:

import tensorflow as tf
from TFModel import TFModel

# Use the session from the TFModel
with input_network.session as sess:

    # Get the input tensor
    x = input_network.inputs['input']

    # Get the output tensor
    y = input_network.outputs['output']

    # Use/Train/Edit the model...

    # Create the output network
    # NOTE: The whole session is passed to the model (to save the variables)
    #       This needs to be called before the session is closed
    output_network = TFModel(inputs={ 'input': x }, outputs={ 'output': y }, session=sess)

Example Workflows

You can download the example workflows from the KNIME public example server (See here how to connect...) or from the KNIME node guide.

Development Notes

You can find instructions on how to work with our code or develop extensions for KNIME Analytics Platform in the knime-sdk-setup repository on BitBucket or GitHub.

Join the Community!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].