From e449b7a9016ada4320b59e999c5cc80e44fefe54 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Mon, 28 Dec 2020 21:07:18 -0800 Subject: [PATCH 1/7] No-op on initAdd in eager mode Signed-off-by: Ryan Nett --- .../src/gen/annotations/org/tensorflow/op/Ops.java | 9 ++++----- .../src/main/java/org/tensorflow/op/core/Init.java | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java index d6e69085324..4b01c1bbd72 100644 --- a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java +++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java @@ -347,10 +347,10 @@ public final class Ops { public final SignalOps signal; - public final QuantizationOps quantization; - public final TrainOps train; + public final QuantizationOps quantization; + private final Scope scope; private Ops(Scope scope) { @@ -372,8 +372,8 @@ private Ops(Scope scope) { math = new MathOps(this); audio = new AudioOps(this); signal = new SignalOps(this); - quantization = new QuantizationOps(this); train = new TrainOps(this); + quantization = new QuantizationOps(this); } /** @@ -2755,11 +2755,10 @@ public Init init() { * *

Registered initializers are then grouped as a single unit of computation by adding * and executing an {@link org.tensorflow.op.core.Init#create(Scope) init} operation from a graph - * session. + * session. No-ops if the session is eager. * * @param scope * @param initializer - * @throws IllegalArgumentException if the execution environment in scope is not a graph * @see org.tensorflow.op.core.Init#create(Scope) init */ public void initAdd(Op initializer) { diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java index b7b65a973c9..f0d722e6c81 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java @@ -89,16 +89,18 @@ public static Init create(Scope scope) { * *

Registered initializers are then grouped as a single unit of computation by adding * and executing an {@link org.tensorflow.op.core.Init#create(Scope) init} operation from a graph - * session. + * session. No-ops if the session is eager. * * @param scope * @param initializer - * @throws IllegalArgumentException if the execution environment in scope is not a graph * @see org.tensorflow.op.core.Init#create(Scope) init */ @Endpoint(name = "initAdd") public static void add(Scope scope, Op initializer) { ExecutionEnvironment exEnv = scope.env(); + if(exEnv.isEager()){ + return; + } if (!(exEnv instanceof Graph)) { throw new IllegalArgumentException("initAdd is only supported on Graph sessions."); } From cbfe6ebb1a25b2a1436a3680cd9d624712a0f9f0 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Mon, 28 Dec 2020 21:11:32 -0800 Subject: [PATCH 2/7] runInit() method in session Signed-off-by: Ryan Nett --- .../src/main/java/org/tensorflow/Session.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java index e9d517a6548..1b82d3ad034 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java @@ -490,6 +490,19 @@ public void run(Op op) { runner().addTarget(op.op()).run(); } + + /** + * Execute the graph's initializers. + * + *

This method is equivalent to {@code session.runner().addTarget(Ops.create(session.graph()).init()).run()}. + * + */ + public void runInit(){ + Runner runner = runner(); + graph.initializers().forEach(runner::addTarget); + runner.run(); + } + /** * Saves the actual state of the variables of this session's graph. * From 72067411a8b570b3e3ec7049a1527d2e076f28b5 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Mon, 28 Dec 2020 21:17:37 -0800 Subject: [PATCH 3/7] add doInitialization() to Runner Signed-off-by: Ryan Nett --- .../src/main/java/org/tensorflow/Session.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java index 1b82d3ad034..25f93304d89 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java @@ -293,6 +293,16 @@ public Runner addTarget(Op op) { return addTarget(op.op()); } + /** + * Make {@link #run} execute the graph's initializers. + * + * @return this session runner + */ + public Runner doInitialization(){ + graph.initializers().forEach(this::addTarget); + return this; + } + /** * Set options (typically for debugging) for this run. * From 304dc00c8b3d2eebdb266aab7ae67fd029582a5f Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Wed, 30 Dec 2020 15:01:53 -0800 Subject: [PATCH 4/7] fix javadoc Signed-off-by: Ryan Nett --- .../src/main/java/org/tensorflow/op/core/Init.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java index f0d722e6c81..fd8c6e2dc57 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java @@ -102,7 +102,7 @@ public static void add(Scope scope, Op initializer) { return; } if (!(exEnv instanceof Graph)) { - throw new IllegalArgumentException("initAdd is only supported on Graph sessions."); + throw new IllegalArgumentException("initAdd is only supported on Graph or eager sessions."); } Graph graph = (Graph) exEnv; graph.addInitializer(initializer); From 8dfc44942a8cb0908b835a685af281a1db97c4c0 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Fri, 1 Jan 2021 15:36:29 -0800 Subject: [PATCH 5/7] assume only graph or eager environments Signed-off-by: Ryan Nett --- .../src/main/java/org/tensorflow/op/core/Init.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java index fd8c6e2dc57..df87d5489ca 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java @@ -98,14 +98,10 @@ public static Init create(Scope scope) { @Endpoint(name = "initAdd") public static void add(Scope scope, Op initializer) { ExecutionEnvironment exEnv = scope.env(); - if(exEnv.isEager()){ - return; - } - if (!(exEnv instanceof Graph)) { - throw new IllegalArgumentException("initAdd is only supported on Graph or eager sessions."); + + if(exEnv.isGraph()) { + ((Graph) exEnv).addInitializer(initializer); } - Graph graph = (Graph) exEnv; - graph.addInitializer(initializer); } private Init(Operation operation) { From b83b1bbbbdad54b11e56099880ebae27ae67b458 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Sat, 2 Jan 2021 20:40:30 -0800 Subject: [PATCH 6/7] Remove doInit(), update javadocs Signed-off-by: Ryan Nett --- .../src/gen/annotations/org/tensorflow/op/Ops.java | 2 +- .../src/main/java/org/tensorflow/Session.java | 10 ---------- .../src/main/java/org/tensorflow/op/core/Init.java | 2 +- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java index 4b01c1bbd72..cf7c5b47030 100644 --- a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java +++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/Ops.java @@ -2755,7 +2755,7 @@ public Init init() { * *

Registered initializers are then grouped as a single unit of computation by adding * and executing an {@link org.tensorflow.op.core.Init#create(Scope) init} operation from a graph - * session. No-ops if the session is eager. + * session. This is a no-op if executed in an eager session. * * @param scope * @param initializer diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java index 25f93304d89..1b82d3ad034 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java @@ -293,16 +293,6 @@ public Runner addTarget(Op op) { return addTarget(op.op()); } - /** - * Make {@link #run} execute the graph's initializers. - * - * @return this session runner - */ - public Runner doInitialization(){ - graph.initializers().forEach(this::addTarget); - return this; - } - /** * Set options (typically for debugging) for this run. * diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java index df87d5489ca..9e39360054a 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java @@ -89,7 +89,7 @@ public static Init create(Scope scope) { * *

Registered initializers are then grouped as a single unit of computation by adding * and executing an {@link org.tensorflow.op.core.Init#create(Scope) init} operation from a graph - * session. No-ops if the session is eager. + * session. This is a no-op if executed in an eager session. * * @param scope * @param initializer From a3fa53b27724a4a7c65082fd9723e1c389de6579 Mon Sep 17 00:00:00 2001 From: Ryan Nett Date: Wed, 6 Jan 2021 19:31:23 -0800 Subject: [PATCH 7/7] small fixes Signed-off-by: Ryan Nett --- .../src/main/java/org/tensorflow/Session.java | 2 +- .../src/main/java/org/tensorflow/op/core/Init.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java index 1b82d3ad034..e156491d09a 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java @@ -494,7 +494,7 @@ public void run(Op op) { /** * Execute the graph's initializers. * - *

This method is equivalent to {@code session.runner().addTarget(Ops.create(session.graph()).init()).run()}. + *

This method is equivalent to {@code session.run(Ops.create(session.graph).init())}. * */ public void runInit(){ diff --git a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java index 9e39360054a..b05eb07c8ca 100644 --- a/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java +++ b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/op/core/Init.java @@ -99,7 +99,7 @@ public static Init create(Scope scope) { public static void add(Scope scope, Op initializer) { ExecutionEnvironment exEnv = scope.env(); - if(exEnv.isGraph()) { + if (exEnv.isGraph()) { ((Graph) exEnv).addInitializer(initializer); } }