Skip to content

Commit e181d03

Browse files
authored
Remove keras package. (#132)
* Remove keras package. In issue #109, we decided to work toward a single framework API for now. * Created tensorflow-framework/README.md and linked it from the main readme.
1 parent bbd74bb commit e181d03

File tree

6 files changed

+32
-127
lines changed

6 files changed

+32
-127
lines changed

README.md

+4-13
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,10 @@ The following describes the layout of the repository and its different artifacts
2424
TensorFlow and just want a thin layer to access the TensorFlow runtime from the JVM
2525

2626
* `tensorflow-framework`
27-
* Complete but fairly primitive API for building and training neural networks with TensorFlow
28-
* Intended audience: expert neural network developers who prefer to make explicit, detailed decisions
29-
about their models and training algorithms
30-
31-
* `tensorflow-keras` (early WIP; only defined in `dev` profile)
32-
* Partially covers the framework API to allow simpler definition of models and training algorithms
33-
* Intended to be familiar if you know the Python Keras API, but prioritizes clean, idiomatic Java
34-
over fidelity to Python
35-
* Provides defaults based on common best practices
36-
* Allows developers to selectively be more explicit by overriding defaults or dipping into the framework API
37-
* Intended audience: neural network developers across the spectrum from beginner to expert who prefer to
38-
rely mostly on best-practice defaults and then selectively fine-tune
39-
27+
* Primary API for building and training neural networks with TensorFlow
28+
* Intended audience: neural network developers
29+
* For more information: [tensorflow-framework/README.md](tensorflow-framework/README.md)
30+
4031
* `ndarray`
4132
* Generic utility library for n-dimensional data I/O operations
4233
* Used by TensorFlow but does not depend on TensorFlow

pom.xml

-13
Original file line numberDiff line numberDiff line change
@@ -119,19 +119,6 @@
119119
</dependencyManagement>
120120

121121
<profiles>
122-
<!--
123-
Developing profile
124-
The 'dev' profile is used for local development or PR compilation check only.
125-
Here, we enable the `tensorflow-keras` module only under this profile, until
126-
it is mature enough for being deployed and distributed for the end users.
127-
-->
128-
<profile>
129-
<id>dev</id>
130-
<modules>
131-
<!-- Disabled while the library is still empty -->
132-
<!--module>tensorflow-keras</module-->
133-
</modules>
134-
</profile>
135122
<!--
136123
Deploying profile
137124
Build the Javadoc when deploying

tensorflow-framework/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Framework API
2+
3+
This is the primary Java API for building and training neural networks with TensorFlow.
4+
This API deliberately mirrors the overall structure of Python Keras. However, it
5+
is intended as a comfortable, idiomatic Java API for developers who may or may not
6+
be familiar with Keras.
7+
8+
This API is intended to provide convenient, sensible defaults, while still allowing you to
9+
exercise fine control over the details of your model, training, and inference when necessary.
10+
11+
More specifically, the following goals drive API evolution:
12+
13+
* If either you know how to implement a model in the Python Keras API, or you are reimplementing an
14+
existing Python Keras model in Java, you should be able to cleanly and naturally follow the same
15+
high-level structure in the framework API.
16+
17+
* Also, given some familiarity with patterns followed throughout the framework API, you should be
18+
able to easily translate every detail of a Python Keras implementation into the framework API.
19+
20+
* However, the framework API is not intended to literally mimic the Python Keras API. Rather, it
21+
should expose the same capabilities in an API that feels natural and idiomatic to a Java
22+
programmer who does not know Keras. If we ever find ourselves unable to reconcile this goal with
23+
easy translation from Python Keras, we may split out a Keras layer.
24+
25+
* Also, the framework API should support fine control over all aspects of modeling, training, and
26+
inference. Unlike with Python Keras, we want this to feel like staying in the same API rather
27+
than diving into a separate layer. But here again, if we are ever unable to reconcile this goal
28+
with easy translation from Python Keras, we may split the framework API into two layers.

tensorflow-keras/pom.xml

-99
This file was deleted.

tensorflow-keras/src/main/java/org/tensorflow/keras/package-info.java

-1
This file was deleted.

tensorflow-keras/src/test/java/org/tensorflow/keras/package-info.java

-1
This file was deleted.

0 commit comments

Comments
 (0)