# java
**Repository Path**: keren_chen/java
## Basic Information
- **Project Name**: java
- **Description**: https://github.com/keren123/java.git
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-09-26
- **Last Updated**: 2022-09-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TensorFlow for Java
## Welcome to the Java world of TensorFlow!
TensorFlow can run on any JVM for building, training and running machine learning models. It comes with
a series of utilities and frameworks that help achieve most of the tasks common to data scientists
and developers working in this domain. Java and other JVM languages, such as Scala or Kotlin, are
frequently used in small-to-large enterprises all over the world, which makes TensorFlow a strategic
choice for adopting machine learning at a large scale.
## This Repository
In the early days, the Java language bindings for TensorFlow were hosted in the [main repository](https://github.com/tensorflow/tensorflow)
and released only when a new version of the core library was ready to be distributed, which happens only
a few times a year. Now, all Java-related code has been moved to this repository so that it can evolve and
be released independently from official TensorFlow releases. In addition, most of the build tasks have been
migrated from Bazel to Maven, which is more familiar for most Java developers.
The following describes the layout of the repository and its different artifacts:
* `tensorflow-core`
* All artifacts that build up the core language bindings of TensorFlow for Java
* Intended audience: projects that provide their own APIs or frameworks on top of
TensorFlow and just want a thin layer to access the TensorFlow native library from the JVM
* `tensorflow-framework`
* Primary API for building and training neural networks with TensorFlow
* Intended audience: neural network developers
* For more information: [tensorflow-framework/README.md](tensorflow-framework/README.md)
*Note: The NdArray Library module has now its own [repository](https://github.com/tensorflow/java-ndarray) and has been moved out of TensorFlow Java.*
## Communication
This repository is maintained by TensorFlow JVM Special Interest Group (SIG). You can easily join the group
by subscribing to the [jvm@tensorflow.org](https://groups.google.com/a/tensorflow.org/forum/#!forum/jvm)
mailing list, or you can simply send pull requests and raise issues to this repository.
There is also a [sig-jvm Gitter channel](https://gitter.im/tensorflow/sig-jvm).
## Building Sources
See [CONTRIBUTING.md](CONTRIBUTING.md#building).
## Using Maven Artifacts
To include TensorFlow in your Maven application, you first need to add a dependency on either the
`tensorflow-core` or `tensorflow-core-platform` artifacts. The former could be included multiple times
for different targeted systems by their classifiers, while the later includes them as dependencies for
`linux-x86_64`, `macosx-x86_64`, and `windows-x86_64`, with more to come in the future. There are also
`tensorflow-core-platform-mkl`, `tensorflow-core-platform-gpu`, and `tensorflow-core-platform-mkl-gpu`
artifacts that depend on artifacts with MKL and/or CUDA support enabled.
For example, for building a JAR that uses TensorFlow and is targeted to be deployed only on Linux
systems, you should add the following dependencies:
```xml
org.tensorflow
tensorflow-core-api
0.4.1
org.tensorflow
tensorflow-core-api
0.4.1
linux-x86_64${javacpp.platform.extension}
```
On the other hand, if you plan to deploy your JAR on more platforms, you need additional
native dependencies as follows:
```xml
org.tensorflow
tensorflow-core-api
0.4.1
org.tensorflow
tensorflow-core-api
0.4.1
linux-x86_64${javacpp.platform.extension}
org.tensorflow
tensorflow-core-api
0.4.1
macosx-x86_64${javacpp.platform.extension}
org.tensorflow
tensorflow-core-api
0.4.1
windows-x86_64${javacpp.platform.extension}
```
In some cases, pre-configured starter artifacts can help to automatically include all versions of
the native library for a given configuration. For example, the `tensorflow-core-platform`,
`tensorflow-core-platform-mkl`, `tensorflow-core-platform-gpu`, or `tensorflow-core-platform-mkl-gpu`
artifact includes transitively all the artifacts above as a single dependency:
```xml
org.tensorflow
tensorflow-core-platform${javacpp.platform.extension}
0.4.1
```
Be aware though that the native library is quite large and including too many versions of it may
significantly increase the size of your JAR. So it is good practice to limit your dependencies to
the platforms you are targeting. For this purpose the `-platform` artifacts include profiles that follow
the conventions established on this page:
* [Reducing the Number of Dependencies](https://github.com/bytedeco/javacpp-presets/wiki/Reducing-the-Number-of-Dependencies)
### Snapshots
Snapshots of TensorFlow Java artifacts are automatically distributed after each update in the code. To use them, you need
to add Sonatype OSS repository in your pom.xml, like the following
```xml
tensorflow-snapshots
https://oss.sonatype.org/content/repositories/snapshots/
true
org.tensorflow
tensorflow-core-platform
0.5.0-SNAPSHOT
```
## TensorFlow/Java Version Support
This table shows the mapping between TensorFlow, TensorFlow Java and minimum supported Java versions.
| TensorFlow Java Version | TensorFlow Version | Minimum Java Version |
| ------------- | ------------- | --------------- |
| 0.2.0 | 2.3.1 | 8 |
| 0.3.0 | 2.4.1 | 8 |
| 0.3.1 | 2.4.1 | 8 |
| 0.3.2 | 2.4.1 | 8 |
| 0.3.3 | 2.4.1 | 8 |
| 0.4.0 | 2.7.0 | 8 |
| 0.4.1 | 2.7.1 | 8 |
| 0.5.0-SNAPSHOT | 2.9.1 | 11 |
## How to Contribute?
Contributions are welcome, guidelines are located in [CONTRIBUTING.md](CONTRIBUTING.md).