代码之家  ›  专栏  ›  技术社区  ›  Francesco Pegoraro

“Tensor”对象没有属性“\u keras\u history”

  •  0
  • Francesco Pegoraro  · 技术社区  · 6 年前

    Conv2D 在输入张量的列上分层,但在添加代码之后:

    accelerometer_input = Input(shape=(1400, 3))
    
    for i in range(3):
        out = Lambda(lambda x: x[:,:, i:i+1])(accelerometer_input) # Extracting the ith channel
        out = K.expand_dims(out, axis=1)
        out = Conv2D(64, (30, 1), data_format="channels_first")(out)  
        branch_outputs.append(out)
    out_put = K.concatenate(branch_outputs)
    

    它给了我标题中的错误。我想这是因为 Lambda 层或 提取 这是不可微的。

    但是没有它我怎么办?

    1 回复  |  直到 6 年前
        1
  •  3
  •   today    6 年前

    K.expand_dims() )关于Keras张量(即。 out _keras_history )这有助于Keras建立模型。现在,要解决这个问题,只需将后端函数放在 Lambda 层以Keras张量作为输出:

    out = Lambda(lambda x: K.expand_dims(x, axis=1))(out)
    

    同样的道理也适用于使用 K.concatenate() . 然而,在这种情况下,Keras中有一个特定的层:

    from keras.layers import concatenate, Concatenate
    
    # use functional interface
    out_put = concatenate(branch_outputs)
    
    # or use layer class
    out_put = Concatenate()(branch_outputs)