diff --git a/README.md b/README.md index d482990c499..e7ec2098707 100644 --- a/README.md +++ b/README.md @@ -56,12 +56,12 @@ systems, you should add the following dependencies: org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 linux-x86_64${javacpp.platform.extension} ``` @@ -72,24 +72,24 @@ native dependencies as follows: org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 linux-x86_64${javacpp.platform.extension} org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 macosx-x86_64${javacpp.platform.extension} org.tensorflow tensorflow-core-api - 0.4.0 + 0.4.1 windows-x86_64${javacpp.platform.extension} ``` @@ -102,7 +102,7 @@ artifact includes transitively all the artifacts above as a single dependency: org.tensorflow tensorflow-core-platform${javacpp.platform.extension} - 0.4.0 + 0.4.1 ``` @@ -132,7 +132,7 @@ to add Sonatype OSS repository in your pom.xml, like the following org.tensorflow tensorflow-core-platform - 0.4.0-SNAPSHOT + 0.5.0-SNAPSHOT ``` @@ -149,6 +149,7 @@ This table shows the mapping between different version of TensorFlow for Java an | 0.3.2 | 2.4.1 | | 0.3.3 | 2.4.1 | | 0.4.0 | 2.7.0 | +| 0.4.1 | 2.7.1 | ## How to Contribute? diff --git a/pom.xml b/pom.xml index 4c9b019a003..38e35f46fa5 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.tensorflow tensorflow-java - 0.4.0 + 0.4.1 pom TensorFlow Java Parent @@ -42,11 +42,11 @@ 5.6.2 1.21 2.7 - 2.6.0 + 2.10.0 true true true - 2.11.1 + 2.20.2 @@ -371,7 +371,9 @@ - + + 1.14.0 + diff --git a/tensorflow-core/pom.xml b/tensorflow-core/pom.xml index 407f7f690b5..4cfa9dc6abd 100644 --- a/tensorflow-core/pom.xml +++ b/tensorflow-core/pom.xml @@ -22,7 +22,7 @@ org.tensorflow tensorflow-java - 0.4.0 + 0.4.1 tensorflow-core pom @@ -40,8 +40,10 @@ Match version used by TensorFlow, in https://github.com/tensorflow/tensorflow/blob/master/tensorflow/workspace2.bzl#L567 (but for the currently used release, not master) + + Bumped to newer version to patch a CVE only present in protobuf-java --> - 3.9.2 + 3.19.4 ${javacpp.platform}${javacpp.platform.extension} false diff --git a/tensorflow-core/tensorflow-core-api/WORKSPACE b/tensorflow-core/tensorflow-core-api/WORKSPACE index 8be7695be78..0ac4d82a193 100644 --- a/tensorflow-core/tensorflow-core-api/WORKSPACE +++ b/tensorflow-core/tensorflow-core-api/WORKSPACE @@ -18,10 +18,10 @@ http_archive( patch_args = ["-p1"], patch_cmds = ["grep -rl 'java_package' tensorflow/core | xargs sed -i.bak 's/^\(.* java_package = \"org\.tensorflow\.\)\(.*\"\)/\\1proto.\\2'/"], urls = [ - "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.7.0.tar.gz", + "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.7.1.tar.gz", ], - sha256 = "bb124905c7fdacd81e7c842b287c169bbf377d29c74c9dacc04f96c9793747bb", - strip_prefix = "tensorflow-2.7.0" + sha256 = "abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21", + strip_prefix = "tensorflow-2.7.1" ) # START: Upstream TensorFlow dependencies diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml index 4d61c0b8cc0..331c62216dd 100644 --- a/tensorflow-core/tensorflow-core-api/pom.xml +++ b/tensorflow-core/tensorflow-core-api/pom.xml @@ -6,7 +6,7 @@ org.tensorflow tensorflow-core - 0.4.0 + 0.4.1 tensorflow-core-api jar diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/EagerOperation.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/EagerOperation.java index 29449847be8..bf0ed87586d 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/EagerOperation.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/EagerOperation.java @@ -190,9 +190,9 @@ private static Tensor resolveTensorHandle(TFE_TensorHandle handle, EagerSession requireTensorHandle(handle); try (PointerScope scope = new PointerScope()) { TF_Status status = TF_Status.newStatus(); - TF_Tensor tensor = TFE_TensorHandleResolve(handle, status).withDeallocator(); + TF_Tensor tensor = TFE_TensorHandleResolve(handle, status); status.throwExceptionIfNotOK(); - return RawTensor.fromHandle(tensor, session).asTypedTensor(); + return RawTensor.fromHandle(tensor.withDeallocator(), session).asTypedTensor(); } } diff --git a/tensorflow-core/tensorflow-core-generator/pom.xml b/tensorflow-core/tensorflow-core-generator/pom.xml index 14786145f65..3fbd73ca2c6 100644 --- a/tensorflow-core/tensorflow-core-generator/pom.xml +++ b/tensorflow-core/tensorflow-core-generator/pom.xml @@ -5,7 +5,7 @@ org.tensorflow tensorflow-core - 0.4.0 + 0.4.1 tensorflow-core-generator jar diff --git a/tensorflow-core/tensorflow-core-platform-gpu/pom.xml b/tensorflow-core/tensorflow-core-platform-gpu/pom.xml index 50a4c4cace5..fca1af5b785 100644 --- a/tensorflow-core/tensorflow-core-platform-gpu/pom.xml +++ b/tensorflow-core/tensorflow-core-platform-gpu/pom.xml @@ -22,7 +22,7 @@ org.tensorflow tensorflow-core - 0.4.0 + 0.4.1 tensorflow-core-platform-gpu TensorFlow Core API Library Platform GPU diff --git a/tensorflow-core/tensorflow-core-platform/pom.xml b/tensorflow-core/tensorflow-core-platform/pom.xml index 165079d2e74..a84fc2c4436 100644 --- a/tensorflow-core/tensorflow-core-platform/pom.xml +++ b/tensorflow-core/tensorflow-core-platform/pom.xml @@ -22,7 +22,7 @@ org.tensorflow tensorflow-core - 0.4.0 + 0.4.1 tensorflow-core-platform TensorFlow Core API Library Platform diff --git a/tensorflow-framework/pom.xml b/tensorflow-framework/pom.xml index 238b2610622..5a33d5c14c4 100644 --- a/tensorflow-framework/pom.xml +++ b/tensorflow-framework/pom.xml @@ -22,7 +22,7 @@ org.tensorflow tensorflow-java - 0.4.0 + 0.4.1 tensorflow-framework jar @@ -93,7 +93,7 @@ 1 false - -Xmx2G -XX:MaxPermSize=256m + -Xmx2G **/*Test.java diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionAtRecallTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionAtRecallTest.java index 8132b74d7cd..756a7651363 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionAtRecallTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionAtRecallTest.java @@ -24,7 +24,6 @@ import org.tensorflow.ndarray.Shape; import org.tensorflow.op.Op; import org.tensorflow.op.Ops; -import org.tensorflow.op.random.RandomUniform; import org.tensorflow.types.TFloat32; import org.tensorflow.types.TInt64; @@ -39,11 +38,11 @@ public void testValueIsIdempotent() { PrecisionAtRecall instance = new PrecisionAtRecall<>(0.7f, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Op update = instance.updateState(tf, labels, predictions, null); diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionTest.java index b195432115e..673a563f894 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/PrecisionTest.java @@ -22,7 +22,6 @@ import org.tensorflow.ndarray.Shape; import org.tensorflow.op.Op; import org.tensorflow.op.Ops; -import org.tensorflow.op.random.RandomUniform; import org.tensorflow.types.TFloat32; import org.tensorflow.types.TFloat64; import org.tensorflow.types.TInt32; @@ -39,11 +38,11 @@ public void testValueIsIdempotent() { Precision instance = new Precision<>(new float[] {0.3f, 0.72f}, 1001L, TFloat64.class); Operand predictions = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1001L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1001L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1001L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1001L, 0L}), TFloat32.class); Op update = instance.updateState(tf, labels, predictions, null); @@ -81,7 +80,11 @@ public void testUnweightedAllIncorrect() { Precision instance = new Precision<>(0.5f, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniformInt(tf.constant(Shape.of(100, 1)), tf.constant(0), tf.constant(2)); + tf.random.statelessMultinomial( + tf.constant(new float[][] {{0.5f, 0.5f}}), + tf.constant(100), + tf.constant(new long[] {1001L, 0L}), + TInt32.class); Operand labels = tf.math.sub(tf.constant(1), predictions); Op update = instance.updateState(tf, labels, predictions, null); session.run(update); diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallAtPrecisionTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallAtPrecisionTest.java index 36dba3180b7..184c42b7326 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallAtPrecisionTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallAtPrecisionTest.java @@ -24,7 +24,6 @@ import org.tensorflow.ndarray.Shape; import org.tensorflow.op.Op; import org.tensorflow.op.Ops; -import org.tensorflow.op.random.RandomUniform; import org.tensorflow.types.TFloat32; import org.tensorflow.types.TInt64; @@ -39,11 +38,11 @@ public void testValueIsIdempotent() { RecallAtPrecision instance = new RecallAtPrecision<>(0.7f, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); labels = tf.math.mul(labels, tf.constant(2.0f)); Op update = instance.updateState(tf, labels, predictions); diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallTest.java index e820cbe0d74..e862ffe280e 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/RecallTest.java @@ -36,9 +36,11 @@ public void testValueIsIdempotent() { Recall instance = new Recall<>(new float[] {0.3f, 0.72f}, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniform(tf.constant(Shape.of(10, 3)), TFloat32.class); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform(tf.constant(Shape.of(10, 3)), TFloat32.class); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Op update = instance.updateState(tf, labels, predictions, null); for (int i = 0; i < 10; i++) session.run(update); diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SensitivityAtSpecificityTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SensitivityAtSpecificityTest.java index d18ca9813fe..179dbf2b9fc 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SensitivityAtSpecificityTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SensitivityAtSpecificityTest.java @@ -24,7 +24,6 @@ import org.tensorflow.ndarray.Shape; import org.tensorflow.op.Op; import org.tensorflow.op.Ops; -import org.tensorflow.op.random.RandomUniform; import org.tensorflow.types.TFloat32; import org.tensorflow.types.TFloat64; import org.tensorflow.types.TInt64; @@ -40,11 +39,11 @@ public void testValueIsIdempotent() { SensitivityAtSpecificity instance = new SensitivityAtSpecificity<>(0.7f, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); labels = tf.math.mul(labels, tf.constant(2.0f)); // instance.setDebug(session.getGraphSession()); diff --git a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SpecificityAtSensitivityTest.java b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SpecificityAtSensitivityTest.java index 676b443cd1c..6507345bbb4 100644 --- a/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SpecificityAtSensitivityTest.java +++ b/tensorflow-framework/src/test/java/org/tensorflow/framework/metrics/SpecificityAtSensitivityTest.java @@ -24,7 +24,6 @@ import org.tensorflow.ndarray.Shape; import org.tensorflow.op.Op; import org.tensorflow.op.Ops; -import org.tensorflow.op.random.RandomUniform; import org.tensorflow.types.TFloat32; import org.tensorflow.types.TFloat64; import org.tensorflow.types.TInt32; @@ -42,11 +41,11 @@ public void testValueIsIdempotent() { new SpecificityAtSensitivity<>(0.7f, 1001L, TFloat32.class); Operand predictions = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); Operand labels = - tf.random.randomUniform( - tf.constant(Shape.of(10, 3)), TFloat32.class, RandomUniform.seed(1L)); + tf.random.statelessRandomUniform( + tf.constant(Shape.of(10, 3)), tf.constant(new long[] {1L, 0L}), TFloat32.class); // instance.setDebug(session.getGraphSession()); Op update = instance.updateState(tf, labels, predictions, null);