【问题标题】:Keras dot product layer by last axisKeras 点积层按最后一个轴
【发布时间】:2017-11-09 07:22:41
【问题描述】:

我有生成图像特征图的连体网络,我如何使用 Keras 获得这些特征图的点积?

input_a = Input(input_size)
input_b = Input(input_size)
fe_net_a = model(input_a)
fe_net_b = model(input_b)

例如如果fe_net_afe_net_b 的输出张量的形状为(1, 17, 17, 1024),如何创建将产生形状为(1, 17, 17) 的张量的层,取最后一个轴的点积?

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

    the merge.Dot() function 的 keras 文档中,这就是你要找的吗?

    from keras.layers import Input, dot
    
    input_a = Input(input_size)
    input_b = Input(input_size)
    fe_net_a = model(input_a)
    fe_net_b = model(input_b)
    
    fe_ab = dot([fe_net_a,fe_net_b], axes = -1)
    

    这对你有用吗?

    【讨论】:

    • 不,它会产生形状为 (1, 17, 17, 17) 的张量。我是 Keras 和深度学习的新手,所以我不知道它为什么会这样做。
    • 这没有任何意义。请给我们一些可重现的代码:)
    • >>> input_size=20, 10, 3 >>> input_a = Input(input_size) >>> input_b = Input(input_size) >>> fe_ab = dot([input_a, input_b], axes=-1) >>> fe_ab <tf.Tensor 'dot_2/MatMul:0' shape=(?, 20, 10, 10) dtype=float32>
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多