Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在keras中,轴参数在点层中起什么作用?_Python_Python 3.x_Tensorflow_Keras - Fatal编程技术网

Python 在keras中,轴参数在点层中起什么作用?

Python 在keras中,轴参数在点层中起什么作用?,python,python-3.x,tensorflow,keras,Python,Python 3.x,Tensorflow,Keras,当我们指定轴=(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

当我们指定轴=(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>)
打印(输入编码)
打印(问题编码)
(,
)
输入编码,552为句子长度,64为嵌入长度

问题编码,5是句子长度,64是嵌入长度


如果我们在点层中指定轴=(2,2),哪些值将被乘以?有人能帮我吗?

轴是指张量的轴

例如,在您的例子中,有一个形状为(None,552,64)的张量,它是3D(秩3)张量

标量(例如
3
)是0D张量

向量(
[1,2,3]
)是一维张量:

矩阵([是2D张量,依此类推

       [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维的向量。(向量维和张量维不同,我已经看过文档,但无法理解它。除此之外,它是这两个张量的点积。但是轴(2,2)是什么这里。我的嵌入正在成倍增加吗?是吗?所以点积是在嵌入上完成的,即64*64。在这种情况下,结果的形状是什么?理论上应该是,(无,255,5),更新了我的答案