比较与tf.keras.backend.batch_dot的功能差异
tf.keras.backend.batch_dot
tf.keras.backend.batch_dot(x, y, axes=None)
更多内容详见tf.keras.backend.batch_dot。
mindspore.ops.batch_dot
mindspore.ops.batch_dot(x1, x2, axes=None)
更多内容详见mindspore.ops.batch_dot。
差异对比
TensorFlow:当输入x和y是批量数据时,batch_dot返回x和y的点积。
MindSpore:MindSpore此API实现功能与Keras一致,仅参数名不同。
分类 |
子类 |
TensorFlow |
MindSpore |
差异 |
---|---|---|---|---|
参数 |
参数1 |
x |
x1 |
功能一致,参数名不同 |
参数2 |
y |
x2 |
功能一致,参数名不同 |
|
参数3 |
axes |
axes |
- |
代码示例1
两API不带axes参数实现功能一致,用法相同。
# TensorFlow
import keras.backend as K
import tensorflow as tf
import numpy as np
x = K.variable(np.random.randint(10,size=(10,12,4,5)), dtype=tf.float32)
y = K.variable(np.random.randint(10,size=(10,12,5,8)), dtype=tf.float32)
output = K.batch_dot(x, y)
print(output.shape)
# (10, 12, 4, 12, 8)
# MindSpore
import numpy as np
import mindspore
import mindspore.ops as ops
from mindspore import Tensor
x1 = Tensor(np.random.randint(10,size=(10,12,4,5)), mindspore.float32)
x2 = Tensor(np.random.randint(10,size=(10,12,5,8)), mindspore.float32)
output = ops.batch_dot(x1, x2)
print(output.shape)
# (10, 12, 4, 12, 8)
代码示例2
两API带axes参数实现功能一致,用法相同。
# TensorFlow
import keras.backend as K
import tensorflow as tf
import numpy as np
x = K.variable(np.ones(shape=[2, 2]), dtype=tf.float32)
y = K.variable(np.ones(shape=[2, 3, 2]), dtype=tf.float32)
axes = (1, 2)
output = K.batch_dot(x, y, axes)
print(output.shape)
# (2, 3)
# MindSpore
import numpy as np
import mindspore
import mindspore.ops as ops
from mindspore import Tensor
x1 = Tensor(np.ones(shape=[2, 2]), mindspore.float32)
x2 = Tensor(np.ones(shape=[2, 3, 2]), mindspore.float32)
axes = (1, 2)
output = ops.batch_dot(x1, x2, axes)
print(output.shape)
# (2, 3)