【问题标题】:ValueError: Dimensions must be equal, but are 512 and 1024ValueError:尺寸必须相等,但为 512 和 1024
【发布时间】:2021-08-18 13:10:09
【问题描述】:

我正在尝试构建一个简单的auto encoder 模型(输入来自cfar10)。

    hiden_size1 = 1024
    hiden_size2 = 512
    hiden_size3 = 1024

    input_layer = Input(shape=(3072,))
    decoder_input_layer = Input(shape=(hiden_size2,))
    hidden_layer1 = Dense(hiden_size1, activation="relu", name="hidden1")
    hidden_layer2 = Dense(hiden_size2, activation="relu", name="hidden2")
    hidden_layer3 = Dense(hiden_size3, activation="relu", name="hidden3")
    autoencoder_output_layer = Dense(3072, activation="sigmoid", name="output")


    autoencoder = Sequential()
    autoencoder.add(input_layer)
    autoencoder.add(hidden_layer1)
    autoencoder.add(hidden_layer2)
    autoencoder.add(hidden_layer3)
    autoencoder.add(autoencoder_output_layer)
    autoencoder.compile(optimizer='adam', loss='binary_crossentropy')

    encoder = Sequential()
    encoder.add(input_layer)
    encoder.add(hidden_layer1)
    encoder.add(hidden_layer2)

    decoder = Sequential()
    decoder.add(decoder_input_layer)
    encoder.add(hidden_layer3)
    decoder.add(autoencoder_output_layer)

最后一个代码行出现错误 (decoder.add(autoencoder_output_layer)):

ValueError: Dimensions must be equal, but are 512 and 1024 for '{{node output/MatMul}} = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false](Placeholder, output/MatMul/ReadVariableOp)' with input shapes: [?,512], [1024,3072].

出了什么问题,我错过了什么?我该如何解决?

【问题讨论】:

    标签: deep-learning autoencoder


    【解决方案1】:

    我认为在倒数第二行,而不是

        encoder.add(hidden_layer3) 
    

    会的

       decoder.add(hidden_layer3)
    

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 2017-07-18
      • 2021-11-08
      • 1970-01-01
      • 2021-08-29
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      相关资源
      最近更新 更多