【问题标题】:'Tensor' object has no attribute 'compile'“张量”对象没有“编译”属性
【发布时间】:2019-01-06 16:18:00
【问题描述】:

下面是sn-p的代码:

    merged_model = Sequential()
    merged_model = concatenate([model1.output, model2.output, model3.output, model4.output, model5.output])
    x = BatchNormalization()(merged_model)

    x = Dense(300)(x)
    x = PReLU()(x)
    x = Dropout(0.2)(x)
    x = BatchNormalization()(x)

    x = Dense(1)(x)
    out = Activation('sigmoid')(x)

    mergerd_model = Model([model1.input, model2.input, model3.input, model4.input, model5.input], [out])

    merged_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

    merged_model.fit([x1, x2, x3, x4, x5], y=y, batch_size=384, nb_epoch=20,
             verbose=1, validation_split=0.1, shuffle=True, callbacks=[checkpoint])

但是当我尝试运行它时,出现以下错误:

    Traceback (most recent call last):
  File "t1.py", line 167, in <module>
    merged_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
AttributeError: 'Tensor' object has no attribute 'compile'

当我尝试查看 merged_model 的类型时,我得到了这个:

<class 'tensorflow.python.framework.ops.Tensor'>

【问题讨论】:

    标签: python keras deep-learning keras-2


    【解决方案1】:

    主要问题是一个错字:在构建模型时,它应该是merged_model 而不是mergerd_model(即删除额外的“r”)。但是,由于您使用的是功能 API,因此也不需要以下行,您可以将其删除:

    merged_model = Sequential()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 2019-03-08
      • 2019-07-03
      • 2020-10-22
      • 2019-02-20
      • 2017-12-06
      • 2018-07-02
      相关资源
      最近更新 更多