public TFFunction(TensorFlowBackend k, List <Tensor> inputs, List <Tensor> outputs, List <List <Tensor> > updates, string name) { this.K = k; this.tf = k.tf; if (updates == null) { updates = new List <List <Tensor> >(); } this.inputs = inputs; this.outputs = outputs; { var updates_ops = new List <TFOperation>(); foreach (List <Tensor> update in updates) { if (update.Count == 2) { var p = K.In(update[0]); var new_p = K.In(update[1]); updates_ops.Add(tf.Assign(p, new_p).Operation); } else if (update.Count == 1) { // assumed already an op updates_ops.Add(K.In(update[0]).output.Operation); } else { throw new NotSupportedException(); } } //this.updates_op = tf.group(updates_ops); this.updates_op = updates_ops; } this.name = name; //this.session_kwargs = session_kwargs; }