The tf.softmax is supported by he-transformer but it gives incorrect results when a client sends encrypted data to a server. The implementation of softmax on the server side does not contact the client to compute it.
tf.softmax as underpinned by he-transformer: the logs from he-transformer show that softmax is not executed collaboratively with the client and then the final result on the client side is incorrect.
We would like softmax to be supported in the same way as ReLU and MaxPool (via MPC).
Log from the he-transformer:
[WARN] 2020-09-17T17:26:03z src/seal/kernel/divide_seal.cpp 44 Dividing ciphertext / ciphertext without client is not privacy-preserving
The tf.softmax is supported by he-transformer but it gives incorrect results when a client sends encrypted data to a server. The implementation of softmax on the server side does not contact the client to compute it.
tf.softmax as underpinned by he-transformer: the logs from he-transformer show that softmax is not executed collaboratively with the client and then the final result on the client side is incorrect.
We would like softmax to be supported in the same way as ReLU and MaxPool (via MPC).
Log from the he-transformer: [WARN] 2020-09-17T17:26:03z src/seal/kernel/divide_seal.cpp 44 Dividing ciphertext / ciphertext without client is not privacy-preserving
Logs: he_client_softmax.log he_client_with_client_encryption.log he_client_without_client_encryption.log he_server_logits.log he_server_softmax.log he_server_softmax_with_client_encryption.log he_server_softmax_without_client_encryption.log