当我们指定轴 = (2, 2) 时,哪些值正好被倍增?谁能告诉我这里的幕后到底发生了什么?
match = dot([input_encoded_m, question_encoded], axes=(2, 2))
match = Activation('softmax')(match)
数据形状:
print(input_encoded_m)
print(questions_encoded)
(<tf.Tensor 'dropout_41/Identity:0' shape=(None, 552, 64) dtype=float32>,
<tf.Tensor 'dropout_42/Identity:0' shape=(None, 5, 64) dtype=float32>)
如果我们在点层中指定轴 = (2, 2) 哪些值要相乘?有人可以帮我吗?
最佳答案
轴是指张量的轴。
例如,在您的情况下,您有一个 shape=(None,552,64) 的张量,它是 3D(rank 3) 张量。
标量(例如 3
)是 0D 张量。
向量 ( [1,2,3]
) 是一维张量:
矩阵([ 是二维张量。依此类推。
[1,2],
[2,3],
]
第一个轴(轴 0)是没有的轴。
第二个轴(轴 1)是一个有 522 行的轴。
第三个轴(轴 2)是一个有 64 列的轴。
a = Input(batch_shape=(None,255,64))
b = Input(batch_shape=(None,5,64))
out = dot([a,b], axes =(2,2))
out.shape
TensorShape([Dimension(None), Dimension(255), Dimension(5)])
所以基本上,
a.b = a1.b1 + a2.b2 +.... + a64.b64
将给出一个标量。由于您有一排 5,您将在张量的最后一个轴上有一个 5 维的向量。(向量 Dimension 与 tensor Dimension 不同
关于python - keras 的点层中的轴参数有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58963955/