From 0ec2ec7f903a1640647cf7ad512a2ff8943baea0 Mon Sep 17 00:00:00 2001
From: lanmeng <497776945@qq.com>
Date: Sat, 16 Oct 2021 00:33:28 +0800
Subject: [PATCH] add api tensorflow_probability_diff bijector.Softplus
add tensorflow_probability_diff for bijector.softplus
change
---
.../api_mapping/tensorflow_api_mapping.md | 8 ++
.../BijectorSoftplus.md | 88 +++++++++++++++++++
.../api_mapping/tensorflow_api_mapping.md | 6 ++
.../BijectorSoftplus.md | 88 +++++++++++++++++++
4 files changed, 190 insertions(+)
create mode 100644 docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
create mode 100644 docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
diff --git a/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_api_mapping.md b/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_api_mapping.md
index ca1fce5b6e..c7fddf8c8f 100644
--- a/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_api_mapping.md
+++ b/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_api_mapping.md
@@ -79,3 +79,11 @@ Mapping between TensorFlow APIs and MindSpore APIs, which is provided by the com
| [tf.zeros_like](http://www.tensorflow.org/versions/r1.15/api_docs/python/tf/zeros_like) |[mindspore.ops.ZerosLike](https://mindspore.cn/docs/api/en/master/api_python/ops/mindspore.ops.ZerosLike.html) | same |
| [tf.distribute.Strategy](http://www.tensorflow.org/versions/r1.15/api_docs/python/tf/distribute/Strategy) |[context.set_auto_parallel_context(parallel_mode=ParallelMode.DATA_PARALLEL)](https://mindspore.cn/docs/api/zh-CN/master/api_python/mindspore.context.html#mindspore.context.set_auto_parallel_context) | [diff](https://www.mindspore.cn/docs/migration_guide/en/master/api_mapping/tensorflow_diff/DistributedTrain.html)|
+## TensorFlow Probability and MindSpore
+
+Mapping between TensorFlow Probability APIs and MindSpore APIs, which is provided by the community.
+
+| TensorFlow Probability 0.14.1 APIs | MindSpore APIs | Description |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------|
+| [tfp.bijectors.Softplus](http://www.tensorflow.org/probability/api_docs/python/tfp/bijectors/Softplus) |[mindspore.nn.probability.bijector.Softplus](https://www.mindspore.cn/docs/api/en/master/api_python/nn_probability/mindspore.nn.probability.bijector.Softplus.html) |[diff](https://www.mindspore.cn/docs/migration_guide/en/master/api_mapping/tensorflow_probability_diff/BijectorSoftplus.html)|
+
diff --git a/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md b/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
new file mode 100644
index 0000000000..268990a73b
--- /dev/null
+++ b/docs/mindspore/migration_guide/source_en/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
@@ -0,0 +1,88 @@
+# Function Differences with tfp.bijectors.Softplus
+
+
+
+## tfp.bijectors.Softplus
+
+```python
+class tfp.bijectors.Softplus(
+ hinge_softness=None,
+ low=None,
+ validate_args=False,
+ name='softplus'
+)
+```
+
+For more information, see [tfp.bijectors.Softplus](http://www.tensorflow.org/probability/api_docs/python/tfp/bijectors/Softplus).
+
+## mindspore.nn.probability.bijector.Softplus
+
+```python
+class mindspore.nn.probability.bijector.Softplus(
+ sharpness=1.0,
+ name="Softplus"
+)
+```
+
+For more information, see [mindspore.nn.probability.bijector.Softplus](https://www.mindspore.cn/docs/api/en/master/api_python/nn_probability/mindspore.nn.probability.bijector.Softplus.html).
+
+## Differences
+
+TensorFlow: The formula: $Y = c\*g(X/c) = c\*Log[1 + exp(X/c)] $, hinge_softness = c.
+
+MindSpore:The formula: $Y = g(X) = log(1 + e ^ {kX}) / k $, sharpness = k. Therefore, when sharpness = 1.0/hinge_softness, the calculation results of MindSpore and TensorFlow are equal.
+
+## Code Example
+
+```python
+# The following implements bijector.Softplus with MindSpore.
+import tensorflow as tf
+import tensorflow_probability.python as tfp
+import mindspore
+import mindspore.nn as nn
+from mindspore import Tensor
+import mindspore.nn.probability.bijector as msb
+
+# To initialize a Softplus bijector of sharpness 2.0.
+softplus = msb.Softplus(2.0)
+value = Tensor([2], dtype=mindspore.float32)
+ans1 = softplus.forward(value)
+print(ans1)
+#Out:
+#[2.009075]
+ans2 = softplus.inverse(value)
+print(ans2)
+#Out:
+#[1.9907573]
+ans3 = softplus.forward_log_jacobian(value)
+print(ans3)
+#Out:
+#[-0.01814996]
+ans4 = softplus.inverse_log_jacobian(value)
+print(ans4)
+#Out:
+#[0.01848531]
+
+
+# The following implements bijectors.Softplus with TensorFlow_Probability.
+value_tf = tf.constant([2], dtype=tf.float32)
+# sharpness = 2.0, sharpness = 1./hinge_softness, so hinge_softness = 0.5
+output = tfp.bijectors.Softplus(0.5)
+out1 = output.forward(value_tf)
+out2 = output.inverse(value_tf)
+out3 = output.forward_log_det_jacobian(value_tf, event_ndims=0)
+out4 = output.inverse_log_det_jacobian(value_tf, event_ndims=0)
+ss = tf.Session()
+ss.run(out1)
+# out1
+# array([2.009075], dtype=float32)
+ss.run(out2)
+# out2
+# array([1.9907573], dtype=float32)
+ss.run(out3)
+# out3
+# array([-0.01814996], dtype=float32)
+ss.run(out4)
+# out4
+# array([0.01848542], dtype=float32)
+```
diff --git a/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_api_mapping.md b/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_api_mapping.md
index d22da72bc1..f211e5570d 100644
--- a/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_api_mapping.md
+++ b/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_api_mapping.md
@@ -79,4 +79,10 @@
| [tf.zeros_like](http://www.tensorflow.org/versions/r1.15/api_docs/python/tf/zeros_like) |[mindspore.ops.ZerosLike](https://mindspore.cn/docs/api/zh-CN/master/api_python/ops/mindspore.ops.ZerosLike.html) | 功能一致 |
| [tf.distribute.Strategy](http://www.tensorflow.org/versions/r1.15/api_docs/python/tf/distribute/Strategy) |[context.set_auto_parallel_context(parallel_mode=ParallelMode.DATA_PARALLEL)](https://mindspore.cn/docs/api/zh-CN/master/api_python/mindspore.context.html#mindspore.context.set_auto_parallel_context) | [差异对比](https://www.mindspore.cn/docs/migration_guide/zh-CN/master/api_mapping/tensorflow_diff/DistributedTrain.html)|
+## TensorFlow Probability与MindSpore
+由社区提供的TensorFlow Probability APIs和MindSpore APIs之间的映射。
+
+| TensorFlow Probability 0.14.1 APIs | MindSpore APIs | 说明 |
+|-----------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|
+| [tfp.bijectors.Softplus](http://www.tensorflow.org/probability/api_docs/python/tfp/bijectors/Softplus) |[mindspore.nn.probability.bijector.Softplus](https://www.mindspore.cn/docs/api/zh-CN/master/api_python/nn_probability/mindspore.nn.probability.bijector.Softplus.html)|[差异对比](https://www.mindspore.cn/docs/migration_guide/zh-CN/master/api_mapping/tensorflow_probability_diff/BijectorSoftplus.html)|
diff --git a/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md b/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
new file mode 100644
index 0000000000..1efdcef076
--- /dev/null
+++ b/docs/mindspore/migration_guide/source_zh_cn/api_mapping/tensorflow_probability_diff/BijectorSoftplus.md
@@ -0,0 +1,88 @@
+# 比较与tfp.bijectors.Softplus的功能差异
+
+
+
+## tfp.bijectors.Softplus
+
+```python
+class tfp.bijectors.Softplus(
+ hinge_softness=None,
+ low=None,
+ validate_args=False,
+ name='softplus'
+)
+```
+
+更多内容详见[tfp.bijectors.Softplus](http://www.tensorflow.org/probability/api_docs/python/tfp/bijectors/Softplus)。
+
+## mindspore.nn.probability.bijector.Softplus
+
+```python
+class mindspore.nn.probability.bijector.Softplus(
+ sharpness=1.0,
+ name="Softplus"
+)
+```
+
+更多内容详见[mindspore.nn.probability.bijector.Softplus](https://www.mindspore.cn/docs/api/zh-CN/master/api_python/nn_probability/mindspore.nn.probability.bijector.Softplus.html)。
+
+## 使用方式
+
+TensorFlow:公式:$Y = c\*g(X/c) = c\*Log[1 + exp(X/c)] $,hinge_softness = c。
+
+MindSpore:公式:$Y = g(X) = log(1 + e ^ {kX}) / k $,sharpness = k。所以当sharpness = 1.0/hinge_softness的时候,MindSpore与TensorFlow的计算结果是一致的。
+
+## 代码示例
+
+```python
+# The following implements bijector.Softplus with MindSpore.
+import tensorflow as tf
+import tensorflow_probability.python as tfp
+import mindspore
+import mindspore.nn as nn
+from mindspore import Tensor
+import mindspore.nn.probability.bijector as msb
+
+# To initialize a Softplus bijector of sharpness 2.0.
+softplus = msb.Softplus(2.0)
+value = Tensor([2], dtype=mindspore.float32)
+ans1 = softplus.forward(value)
+print(ans1)
+#Out:
+#[2.009075]
+ans2 = softplus.inverse(value)
+print(ans2)
+#Out:
+#[1.9907573]
+ans3 = softplus.forward_log_jacobian(value)
+print(ans3)
+#Out:
+#[-0.01814996]
+ans4 = softplus.inverse_log_jacobian(value)
+print(ans4)
+#Out:
+#[0.01848531]
+
+
+# The following implements bijectors.Softplus with TensorFlow_Probability.
+value_tf = tf.constant([2], dtype=tf.float32)
+# sharpness = 2.0, sharpness = 1./hinge_softness, so hinge_softness = 0.5
+output = tfp.bijectors.Softplus(0.5)
+out1 = output.forward(value_tf)
+out2 = output.inverse(value_tf)
+out3 = output.forward_log_det_jacobian(value_tf, event_ndims=0)
+out4 = output.inverse_log_det_jacobian(value_tf, event_ndims=0)
+ss = tf.Session()
+ss.run(out1)
+# out1
+# array([2.009075], dtype=float32)
+ss.run(out2)
+# out2
+# array([1.9907573], dtype=float32)
+ss.run(out3)
+# out3
+# array([-0.01814996], dtype=float32)
+ss.run(out4)
+# out4
+# array([0.01848542], dtype=float32)
+```
--
Gitee