Skip to content

Commit e1410a4

Browse files
Craigacpfrankfliu
andauthored
Release v0.4.1 (#432)
* Bumping version for point release. * Fix NullPointerException issue. (#407) * Bumping to TF 2.7.1, protobuf 3.19.4, error-prone 2.10.0 (#412) * Fix metric test failures (#414) * Migrate metric tests from randomUniform to statelessRandomUniform Co-authored-by: Frank Liu <frankfliu2000@gmail.com>
1 parent e123e24 commit e1410a4

File tree

16 files changed

+59
-53
lines changed

16 files changed

+59
-53
lines changed

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ systems, you should add the following dependencies:
5656
<dependency>
5757
<groupId>org.tensorflow</groupId>
5858
<artifactId>tensorflow-core-api</artifactId>
59-
<version>0.4.0</version>
59+
<version>0.4.1</version>
6060
</dependency>
6161
<dependency>
6262
<groupId>org.tensorflow</groupId>
6363
<artifactId>tensorflow-core-api</artifactId>
64-
<version>0.4.0</version>
64+
<version>0.4.1</version>
6565
<classifier>linux-x86_64${javacpp.platform.extension}</classifier>
6666
</dependency>
6767
```
@@ -72,24 +72,24 @@ native dependencies as follows:
7272
<dependency>
7373
<groupId>org.tensorflow</groupId>
7474
<artifactId>tensorflow-core-api</artifactId>
75-
<version>0.4.0</version>
75+
<version>0.4.1</version>
7676
</dependency>
7777
<dependency>
7878
<groupId>org.tensorflow</groupId>
7979
<artifactId>tensorflow-core-api</artifactId>
80-
<version>0.4.0</version>
80+
<version>0.4.1</version>
8181
<classifier>linux-x86_64${javacpp.platform.extension}</classifier>
8282
</dependency>
8383
<dependency>
8484
<groupId>org.tensorflow</groupId>
8585
<artifactId>tensorflow-core-api</artifactId>
86-
<version>0.4.0</version>
86+
<version>0.4.1</version>
8787
<classifier>macosx-x86_64${javacpp.platform.extension}</classifier>
8888
</dependency>
8989
<dependency>
9090
<groupId>org.tensorflow</groupId>
9191
<artifactId>tensorflow-core-api</artifactId>
92-
<version>0.4.0</version>
92+
<version>0.4.1</version>
9393
<classifier>windows-x86_64${javacpp.platform.extension}</classifier>
9494
</dependency>
9595
```
@@ -102,7 +102,7 @@ artifact includes transitively all the artifacts above as a single dependency:
102102
<dependency>
103103
<groupId>org.tensorflow</groupId>
104104
<artifactId>tensorflow-core-platform${javacpp.platform.extension}</artifactId>
105-
<version>0.4.0</version>
105+
<version>0.4.1</version>
106106
</dependency>
107107
```
108108

@@ -132,7 +132,7 @@ to add Sonatype OSS repository in your pom.xml, like the following
132132
<dependency>
133133
<groupId>org.tensorflow</groupId>
134134
<artifactId>tensorflow-core-platform</artifactId>
135-
<version>0.4.0-SNAPSHOT</version>
135+
<version>0.5.0-SNAPSHOT</version>
136136
</dependency>
137137
</dependencies>
138138
```
@@ -149,6 +149,7 @@ This table shows the mapping between different version of TensorFlow for Java an
149149
| 0.3.2 | 2.4.1 |
150150
| 0.3.3 | 2.4.1 |
151151
| 0.4.0 | 2.7.0 |
152+
| 0.4.1 | 2.7.1 |
152153

153154
## How to Contribute?
154155

pom.xml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>org.tensorflow</groupId>
99
<artifactId>tensorflow-java</artifactId>
10-
<version>0.4.0</version>
10+
<version>0.4.1</version>
1111
<packaging>pom</packaging>
1212

1313
<name>TensorFlow Java Parent</name>
@@ -42,11 +42,11 @@
4242
<junit.version>5.6.2</junit.version>
4343
<jmh.version>1.21</jmh.version>
4444
<versions-plugin.version>2.7</versions-plugin.version>
45-
<errorprone.version>2.6.0</errorprone.version>
45+
<errorprone.version>2.10.0</errorprone.version>
4646
<maven.javadoc.skip>true</maven.javadoc.skip>
4747
<maven.source.skip>true</maven.source.skip>
4848
<gpg.skip>true</gpg.skip>
49-
<spotless.version>2.11.1</spotless.version>
49+
<spotless.version>2.20.2</spotless.version>
5050
</properties>
5151

5252
<repositories>
@@ -371,7 +371,9 @@
371371

372372
<lineEndings/>
373373
<java>
374-
<googleJavaFormat/>
374+
<googleJavaFormat>
375+
<version>1.14.0</version>
376+
</googleJavaFormat>
375377

376378
<removeUnusedImports/>
377379
</java>

tensorflow-core/pom.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>org.tensorflow</groupId>
2424
<artifactId>tensorflow-java</artifactId>
25-
<version>0.4.0</version>
25+
<version>0.4.1</version>
2626
</parent>
2727
<artifactId>tensorflow-core</artifactId>
2828
<packaging>pom</packaging>
@@ -40,8 +40,10 @@
4040
Match version used by TensorFlow, in
4141
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/workspace2.bzl#L567
4242
(but for the currently used release, not master)
43+
44+
Bumped to newer version to patch a CVE only present in protobuf-java
4345
-->
44-
<protobuf.version>3.9.2</protobuf.version>
46+
<protobuf.version>3.19.4</protobuf.version>
4547

4648
<native.classifier>${javacpp.platform}${javacpp.platform.extension}</native.classifier>
4749
<javacpp.build.skip>false</javacpp.build.skip> <!-- To skip execution of build.sh: -Djavacpp.build.skip=true -->

tensorflow-core/tensorflow-core-api/WORKSPACE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ http_archive(
1818
patch_args = ["-p1"],
1919
patch_cmds = ["grep -rl 'java_package' tensorflow/core | xargs sed -i.bak 's/^\(.* java_package = \"org\.tensorflow\.\)\(.*\"\)/\\1proto.\\2'/"],
2020
urls = [
21-
"https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.7.0.tar.gz",
21+
"https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.7.1.tar.gz",
2222
],
23-
sha256 = "bb124905c7fdacd81e7c842b287c169bbf377d29c74c9dacc04f96c9793747bb",
24-
strip_prefix = "tensorflow-2.7.0"
23+
sha256 = "abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21",
24+
strip_prefix = "tensorflow-2.7.1"
2525
)
2626

2727
# START: Upstream TensorFlow dependencies

tensorflow-core/tensorflow-core-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>org.tensorflow</groupId>
88
<artifactId>tensorflow-core</artifactId>
9-
<version>0.4.0</version>
9+
<version>0.4.1</version>
1010
</parent>
1111
<artifactId>tensorflow-core-api</artifactId>
1212
<packaging>jar</packaging>

tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/EagerOperation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,9 @@ private static Tensor resolveTensorHandle(TFE_TensorHandle handle, EagerSession
190190
requireTensorHandle(handle);
191191
try (PointerScope scope = new PointerScope()) {
192192
TF_Status status = TF_Status.newStatus();
193-
TF_Tensor tensor = TFE_TensorHandleResolve(handle, status).withDeallocator();
193+
TF_Tensor tensor = TFE_TensorHandleResolve(handle, status);
194194
status.throwExceptionIfNotOK();
195-
return RawTensor.fromHandle(tensor, session).asTypedTensor();
195+
return RawTensor.fromHandle(tensor.withDeallocator(), session).asTypedTensor();
196196
}
197197
}
198198

tensorflow-core/tensorflow-core-generator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.tensorflow</groupId>
77
<artifactId>tensorflow-core</artifactId>
8-
<version>0.4.0</version>
8+
<version>0.4.1</version>
99
</parent>
1010
<artifactId>tensorflow-core-generator</artifactId>
1111
<packaging>jar</packaging>

tensorflow-core/tensorflow-core-platform-gpu/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>org.tensorflow</groupId>
2424
<artifactId>tensorflow-core</artifactId>
25-
<version>0.4.0</version>
25+
<version>0.4.1</version>
2626
</parent>
2727
<artifactId>tensorflow-core-platform-gpu</artifactId>
2828
<name>TensorFlow Core API Library Platform GPU</name>

tensorflow-core/tensorflow-core-platform/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>org.tensorflow</groupId>
2424
<artifactId>tensorflow-core</artifactId>
25-
<version>0.4.0</version>
25+
<version>0.4.1</version>
2626
</parent>
2727
<artifactId>tensorflow-core-platform</artifactId>
2828
<name>TensorFlow Core API Library Platform</name>

tensorflow-framework/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>org.tensorflow</groupId>
2424
<artifactId>tensorflow-java</artifactId>
25-
<version>0.4.0</version>
25+
<version>0.4.1</version>
2626
</parent>
2727
<artifactId>tensorflow-framework</artifactId>
2828
<packaging>jar</packaging>
@@ -93,7 +93,7 @@
9393
<configuration>
9494
<forkCount>1</forkCount>
9595
<reuseForks>false</reuseForks>
96-
<argLine>-Xmx2G -XX:MaxPermSize=256m</argLine>
96+
<argLine>-Xmx2G</argLine>
9797
<includes>
9898
<include>**/*Test.java</include>
9999
</includes>

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionAtRecallTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.tensorflow.ndarray.Shape;
2525
import org.tensorflow.op.Op;
2626
import org.tensorflow.op.Ops;
27-
import org.tensorflow.op.random.RandomUniform;
2827
import org.tensorflow.types.TFloat32;
2928
import org.tensorflow.types.TInt64;
3029

@@ -39,11 +38,11 @@ public void testValueIsIdempotent() {
3938
PrecisionAtRecall<TFloat32> instance = new PrecisionAtRecall<>(0.7f, 1001L, TFloat32.class);
4039

4140
Operand<TFloat32> predictions =
42-
tf.random.randomUniform(
43-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
41+
tf.random.statelessRandomUniform(
42+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4443
Operand<TFloat32> labels =
45-
tf.random.randomUniform(
46-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
44+
tf.random.statelessRandomUniform(
45+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4746

4847
Op update = instance.updateState(tf, labels, predictions, null);
4948

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionTest.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.tensorflow.ndarray.Shape;
2323
import org.tensorflow.op.Op;
2424
import org.tensorflow.op.Ops;
25-
import org.tensorflow.op.random.RandomUniform;
2625
import org.tensorflow.types.TFloat32;
2726
import org.tensorflow.types.TFloat64;
2827
import org.tensorflow.types.TInt32;
@@ -39,11 +38,11 @@ public void testValueIsIdempotent() {
3938
Precision<TFloat64> instance =
4039
new Precision<>(new float[] {0.3f, 0.72f}, 1001L, TFloat64.class);
4140
Operand<TFloat32> predictions =
42-
tf.random.randomUniform(
43-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1001L));
41+
tf.random.statelessRandomUniform(
42+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1001L, 0L}), TFloat32.class);
4443
Operand<TFloat32> labels =
45-
tf.random.randomUniform(
46-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1001L));
44+
tf.random.statelessRandomUniform(
45+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1001L, 0L}), TFloat32.class);
4746

4847
Op update = instance.updateState(tf, labels, predictions, null);
4948

@@ -81,7 +80,11 @@ public void testUnweightedAllIncorrect() {
8180
Precision<TFloat32> instance = new Precision<>(0.5f, 1001L, TFloat32.class);
8281

8382
Operand<TInt32> predictions =
84-
tf.random.randomUniformInt(tf.constant(Shape.of(100, 1)), tf.constant(0), tf.constant(2));
83+
tf.random.statelessMultinomial(
84+
tf.constant(new float[][] {{0.5f, 0.5f}}),
85+
tf.constant(100),
86+
tf.constant(new long[] {1001L, 0L}),
87+
TInt32.class);
8588
Operand<TInt32> labels = tf.math.sub(tf.constant(1), predictions);
8689
Op update = instance.updateState(tf, labels, predictions, null);
8790
session.run(update);

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallAtPrecisionTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.tensorflow.ndarray.Shape;
2525
import org.tensorflow.op.Op;
2626
import org.tensorflow.op.Ops;
27-
import org.tensorflow.op.random.RandomUniform;
2827
import org.tensorflow.types.TFloat32;
2928
import org.tensorflow.types.TInt64;
3029

@@ -39,11 +38,11 @@ public void testValueIsIdempotent() {
3938
RecallAtPrecision<TFloat32> instance = new RecallAtPrecision<>(0.7f, 1001L, TFloat32.class);
4039

4140
Operand<TFloat32> predictions =
42-
tf.random.randomUniform(
43-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
41+
tf.random.statelessRandomUniform(
42+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4443
Operand<TFloat32> labels =
45-
tf.random.randomUniform(
46-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
44+
tf.random.statelessRandomUniform(
45+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4746
labels = tf.math.mul(labels, tf.constant(2.0f));
4847

4948
Op update = instance.updateState(tf, labels, predictions);

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ public void testValueIsIdempotent() {
3636
Recall<TFloat32> instance = new Recall<>(new float[] {0.3f, 0.72f}, 1001L, TFloat32.class);
3737

3838
Operand<TFloat32> predictions =
39-
tf.random.randomUniform(tf.constant(Shape.of(10, 3)), TFloat32.class);
39+
tf.random.statelessRandomUniform(
40+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4041
Operand<TFloat32> labels =
41-
tf.random.randomUniform(tf.constant(Shape.of(10, 3)), TFloat32.class);
42+
tf.random.statelessRandomUniform(
43+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4244
Op update = instance.updateState(tf, labels, predictions, null);
4345

4446
for (int i = 0; i < 10; i++) session.run(update);

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SensitivityAtSpecificityTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.tensorflow.ndarray.Shape;
2525
import org.tensorflow.op.Op;
2626
import org.tensorflow.op.Ops;
27-
import org.tensorflow.op.random.RandomUniform;
2827
import org.tensorflow.types.TFloat32;
2928
import org.tensorflow.types.TFloat64;
3029
import org.tensorflow.types.TInt64;
@@ -40,11 +39,11 @@ public void testValueIsIdempotent() {
4039
SensitivityAtSpecificity<TFloat32> instance =
4140
new SensitivityAtSpecificity<>(0.7f, 1001L, TFloat32.class);
4241
Operand<TFloat32> predictions =
43-
tf.random.randomUniform(
44-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
42+
tf.random.statelessRandomUniform(
43+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4544
Operand<TFloat32> labels =
46-
tf.random.randomUniform(
47-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
45+
tf.random.statelessRandomUniform(
46+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4847
labels = tf.math.mul(labels, tf.constant(2.0f));
4948

5049
// instance.setDebug(session.getGraphSession());

tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SpecificityAtSensitivityTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.tensorflow.ndarray.Shape;
2525
import org.tensorflow.op.Op;
2626
import org.tensorflow.op.Ops;
27-
import org.tensorflow.op.random.RandomUniform;
2827
import org.tensorflow.types.TFloat32;
2928
import org.tensorflow.types.TFloat64;
3029
import org.tensorflow.types.TInt32;
@@ -42,11 +41,11 @@ public void testValueIsIdempotent() {
4241
new SpecificityAtSensitivity<>(0.7f, 1001L, TFloat32.class);
4342

4443
Operand<TFloat32> predictions =
45-
tf.random.randomUniform(
46-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
44+
tf.random.statelessRandomUniform(
45+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
4746
Operand<TFloat32> labels =
48-
tf.random.randomUniform(
49-
tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L));
47+
tf.random.statelessRandomUniform(
48+
tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class);
5049

5150
// instance.setDebug(session.getGraphSession());
5251
Op update = instance.updateState(tf, labels, predictions, null);

0 commit comments

Comments
 (0)