Closed jlewi closed 2 years ago
Here self
is an instance of <tensorflow_federated.python.core.impl.executors.reference_resolving_executor.ReferenceResolvingExecutorValue
and
self._value
is an instance of tensorflow_federated.python.core.impl.executors.thread_delegating_executor.ThreadDelegatingExecutorValue
self._value._value
<flaap.tff.executors.TaskValue object at 0x7f0c2b9f70a0>
self._value._value.type_signature
FunctionType(None, TensorType(tf.float32))
So here's what I think the problem is. TaskExecutor.create_value returns a type of FunctionType
which is not the return type of the output of the create_call. The output of the create_call should have a type of TensorType(tf.float32)
. The functiontype is the type signature of the value passed to create_call.
So seems like a bug in how TaskStoreExecutor is computing the type signature of the return type.
Here's the code for RemoteValue https://github.com/tensorflow/federated/blob/4403830d5a8d79c76d644f46e729013a422e6882/tensorflow_federated/python/core/impl/executors/remote_executor.py#L199
return RemoteValue(response.value_ref, comp.type_signature.result, self)
Its getting the type of the result
Stack trace.