Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 如何定义Kronecker产品层的2个keras形状层(无,4096)?_Python_Tensorflow_Keras_Multimodal - Fatal编程技术网

Python 如何定义Kronecker产品层的2个keras形状层(无,4096)?

Python 如何定义Kronecker产品层的2个keras形状层(无,4096)?,python,tensorflow,keras,multimodal,Python,Tensorflow,Keras,Multimodal,假设有两个不同/独立的keras层, encoder_1和encoder_2,两者的输出形状均为(无,4096)。 现在如何定义keras multiply layer,它将(None,40964096)作为输出形状。 这和克罗内克的产品一样吗? 如果不是相同的请说明如何实现2层的Kronecker产品命名,编码器\u 1和编码器\u 2?因此,在插入长度为1的尺寸后,您应该能够简单地使用Keras的层或方法来实现这一点: 将tensorflow导入为tf 从tensorflow.keras.l

假设有两个不同/独立的keras层,
encoder_1和encoder_2
,两者的输出形状均为
(无,4096)
。 现在如何定义keras multiply layer,它将
(None,40964096)
作为输出形状。 这和克罗内克的产品一样吗?
如果不是相同的请说明如何实现2层的Kronecker产品命名,编码器\u 1和编码器\u 2?

因此,在插入长度为1的尺寸后,您应该能够简单地使用Keras的层或方法来实现这一点:

将tensorflow导入为tf
从tensorflow.keras.layers导入点
编码器_1=tf。展开_dims(编码器_1,轴=2)
编码器_2=tf。展开_dims(编码器_2,轴=1)
外部=点([encoder_1,encoder_2],轴=(2,1))

外部
应该是形状张量
(None,4096,4096)

第一个维度是批次维度吗?在这种情况下,这只是两个长度为4096的向量的外积,是吗?是的,这是正确的。第一个维度是batch,它是None。编码器e_1和e_2在技术上是4096长度的1D阵列,是平坦层的输出。因此,将两个维数为(None,4096)的输入与b/w相乘将得到(None,4096,4096)的输出“无”表示批次。顺便说一下,它的名称是双线性张量积,不是kronecker积谢谢,它成功了。不过我有一个问题。这是双线性张量积,编码器_1吗⊗ 编码器2?如果没有,那么如何实现Keras层来执行双线性张量积?这是在批次维度上广播的两个向量之间的外积。外积是向量张量积的特例。