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..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 @@ -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. This is a no-op if executed in an eager session. * * @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/Session.java b/tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/Session.java index e9d517a6548..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 @@ -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.run(Ops.create(session.graph).init())}. + * + */ + 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. * 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..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 @@ -89,21 +89,19 @@ 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. This is a no-op if executed in an eager session. * * @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 instanceof Graph)) { - throw new IllegalArgumentException("initAdd is only supported on Graph sessions."); + + if (exEnv.isGraph()) { + ((Graph) exEnv).addInitializer(initializer); } - Graph graph = (Graph) exEnv; - graph.addInitializer(initializer); } private Init(Operation operation) {