All Projects → keras-team → Keras

keras-team / Keras

Licence: other
Deep Learning for humans

Programming Languages

python
139335 projects - #7 most used programming language
Starlark
911 projects

Projects that are alternatives of or similar to Keras

Fixy
Amacımız Türkçe NLP literatüründeki birçok farklı sorunu bir arada çözebilen, eşsiz yaklaşımlar öne süren ve literatürdeki çalışmaların eksiklerini gideren open source bir yazım destekleyicisi/denetleyicisi oluşturmak. Kullanıcıların yazdıkları metinlerdeki yazım yanlışlarını derin öğrenme yaklaşımıyla çözüp aynı zamanda metinlerde anlamsal analizi de gerçekleştirerek bu bağlamda ortaya çıkan yanlışları da fark edip düzeltebilmek.
Stars: ✭ 165 (-99.69%)
Mutual labels:  data-science, neural-networks
Deep Spying
Spying using Smartwatch and Deep Learning
Stars: ✭ 172 (-99.68%)
Mutual labels:  data-science, neural-networks
Auptimizer
An automatic ML model optimization tool.
Stars: ✭ 166 (-99.69%)
Mutual labels:  data-science, neural-networks
Uncertainty Metrics
An easy-to-use interface for measuring uncertainty and robustness.
Stars: ✭ 145 (-99.73%)
Mutual labels:  data-science, neural-networks
Mydatascienceportfolio
Applying Data Science and Machine Learning to Solve Real World Business Problems
Stars: ✭ 227 (-99.58%)
Mutual labels:  data-science, neural-networks
Autograd.jl
Julia port of the Python autograd package.
Stars: ✭ 147 (-99.73%)
Mutual labels:  data-science, neural-networks
Darwinexlabs
Datasets, tools and more from Darwinex Labs - Prop Investing Arm & Quant Team @ Darwinex
Stars: ✭ 248 (-99.54%)
Mutual labels:  data-science, neural-networks
Codesearchnet
Datasets, tools, and benchmarks for representation learning of code.
Stars: ✭ 1,378 (-97.42%)
Mutual labels:  data-science, neural-networks
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (-99.62%)
Mutual labels:  data-science, neural-networks
Radio
RadIO is a library for data science research of computed tomography imaging
Stars: ✭ 198 (-99.63%)
Mutual labels:  data-science, neural-networks
Learn Machine Learning
Learn to Build a Machine Learning Application from Top Articles
Stars: ✭ 116 (-99.78%)
Mutual labels:  data-science, neural-networks
Igel
a delightful machine learning tool that allows you to train, test, and use models without writing code
Stars: ✭ 2,956 (-94.47%)
Mutual labels:  data-science, neural-networks
Keras Contrib
Keras community contributions
Stars: ✭ 1,532 (-97.14%)
Mutual labels:  data-science, neural-networks
Ml Workspace
🛠 All-in-one web-based IDE specialized for machine learning and data science.
Stars: ✭ 2,337 (-95.63%)
Mutual labels:  data-science, neural-networks
Sigmoidal ai
Tutoriais de Python, Data Science, Machine Learning e Deep Learning - Sigmoidal
Stars: ✭ 103 (-99.81%)
Mutual labels:  data-science, neural-networks
Jaxnet
Concise deep learning for JAX
Stars: ✭ 171 (-99.68%)
Mutual labels:  data-science, neural-networks
Vvedenie Mashinnoe Obuchenie
📝 Подборка ресурсов по машинному обучению
Stars: ✭ 1,282 (-97.6%)
Mutual labels:  data-science, neural-networks
Tageditor
🏖TagEditor - Annotation tool for spaCy
Stars: ✭ 92 (-99.83%)
Mutual labels:  data-science, neural-networks
Pywarm
A cleaner way to build neural networks for PyTorch.
Stars: ✭ 184 (-99.66%)
Mutual labels:  data-science, neural-networks
Ntm One Shot Tf
One Shot Learning using Memory-Augmented Neural Networks (MANN) based on Neural Turing Machine architecture in Tensorflow
Stars: ✭ 238 (-99.55%)
Mutual labels:  data-science, neural-networks

Keras: Deep Learning for humans

Keras logo

This repository hosts the development of the Keras library. Read the documentation at keras.io.

About Keras

Keras is a deep learning API written in Python, running on top of the machine learning platform TensorFlow. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result as fast as possible is key to doing good research.

Keras is:

  • Simple -- but not simplistic. Keras reduces developer cognitive load to free you to focus on the parts of the problem that really matter.
  • Flexible -- Keras adopts the principle of progressive disclosure of complexity: simple workflows should be quick and easy, while arbitrarily advanced workflows should be possible via a clear path that builds upon what you've already learned.
  • Powerful -- Keras provides industry-strength performance and scalability: it is used by organizations and companies including NASA, YouTube, or Waymo.

Keras & TensorFlow 2

TensorFlow 2 is an end-to-end, open-source machine learning platform. You can think of it as an infrastructure layer for differentiable programming. It combines four key abilities:

  • Efficiently executing low-level tensor operations on CPU, GPU, or TPU.
  • Computing the gradient of arbitrary differentiable expressions.
  • Scaling computation to many devices, such as clusters of hundreds of GPUs.
  • Exporting programs ("graphs") to external runtimes such as servers, browsers, mobile and embedded devices.

Keras is the high-level API of TensorFlow 2: an approachable, highly-productive interface for solving machine learning problems, with a focus on modern deep learning. It provides essential abstractions and building blocks for developing and shipping machine learning solutions with high iteration velocity.

Keras empowers engineers and researchers to take full advantage of the scalability and cross-platform capabilities of TensorFlow 2: you can run Keras on TPU or on large clusters of GPUs, and you can export your Keras models to run in the browser or on a mobile device.


First contact with Keras

The core data structures of Keras are layers and models. The simplest type of model is the Sequential model, a linear stack of layers. For more complex architectures, you should use the Keras functional API, which allows to build arbitrary graphs of layers, or write models entirely from scratch via subclasssing.

Here is the Sequential model:

from tensorflow.keras.models import Sequential

model = Sequential()

Stacking layers is as easy as .add():

from tensorflow.keras.layers import Dense

model.add(Dense(units=64, activation='relu'))
model.add(Dense(units=10, activation='softmax'))

Once your model looks good, configure its learning process with .compile():

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

If you need to, you can further configure your optimizer. The Keras philosophy is to keep simple things simple, while allowing the user to be fully in control when they need to (the ultimate control being the easy extensibility of the source code via subclassing).

model.compile(loss=tf.keras.losses.categorical_crossentropy,
              optimizer=tf.keras.optimizers.SGD(
                  learning_rate=0.01, momentum=0.9, nesterov=True))

You can now iterate on your training data in batches:

# x_train and y_train are Numpy arrays.
model.fit(x_train, y_train, epochs=5, batch_size=32)

Evaluate your test loss and metrics in one line:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

Or generate predictions on new data:

classes = model.predict(x_test, batch_size=128)

What you just saw is the most elementary way to use Keras.

However, Keras is also a highly-flexible framework suitable to iterate on state-of-the-art research ideas. Keras follows the principle of progressive disclosure of complexity: it makes it easy to get started, yet it makes it possible to handle arbitrarily advanced use cases, only requiring incremental learning at each step.

In much the same way that you were able to train & evaluate a simple neural network above in a few lines, you can use Keras to quickly develop new training procedures or exotic model architectures. Here's a low-level training loop example, combining Keras functionality with the TensorFlow GradientTape:

import tensorflow as tf

# Prepare an optimizer.
optimizer = tf.keras.optimizers.Adam()
# Prepare a loss function.
loss_fn = tf.keras.losses.kl_divergence

# Iterate over the batches of a dataset.
for inputs, targets in dataset:
    # Open a GradientTape.
    with tf.GradientTape() as tape:
        # Forward pass.
        predictions = model(inputs)
        # Compute the loss value for this batch.
        loss_value = loss_fn(targets, predictions)

    # Get gradients of loss wrt the weights.
    gradients = tape.gradient(loss_value, model.trainable_weights)
    # Update the weights of the model.
    optimizer.apply_gradients(zip(gradients, model.trainable_weights))

For more in-depth tutorials about Keras, you can check out:


Installation

Keras comes packaged with TensorFlow 2 as tensorflow.keras. To start using Keras, simply install TensorFlow 2.


Release and compatibility

Keras has nightly releases (keras-nightly on PyPI) and stable releases (keras on PyPI). The nightly Keras releases are usually compatible with the corresponding version of the tf-nightly releases (e.g. keras-nightly==2.7.0.dev2021100607 should be used with tf-nightly==2.7.0.dev2021100607). We don't maintain backward compatibility for nightly releases. For stable releases, each Keras version maps to a specific stable version of TensorFlow.

The table below shows the compatibility version mapping between TensorFlow versions and Keras versions.

All the release branches can be found on Github.

All the release binaries can be found on Pypi.

Keras release Note Compatible Tensorflow version
2.4 Last stable release of multi-backend Keras < 2.5
2.5-pre Pre-release (not formal) for standalone Keras repo >= 2.5 < 2.6
2.6 First formal release of standalone Keras. >= 2.6 < 2.7
2.7 (Upcoming release) >= 2.7 < 2.8
nightly tf-nightly

Support

You can ask questions and join the development discussion:


Opening an issue

You can also post bug reports and feature requests (only) in GitHub issues.


Opening a PR

We welcome contributions! Before opening a PR, please read our contributor guide, and the API design guideline.

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].