NameError: name 'Subtract' is not defined

NameError: name 'Subtract' is not defined

我正在研究神经网络,我将在 Dueling DQN 算法中使用它,但我遇到了 keras 层 Subtract 的问题,当我使用该层时出现此错误:

AttributeError: module 'keras.layers' has no attribute 'Subtract'

方法,我使用减法的地方:

def DDDQN(self):
    inp=Input(shape=(self.state_size,))
    x=Dense(units=32,activation='relu',kernel_initializer='he_uniform')(inp)
    x=Dense(units=16,activation='relu',kernel_initializer='he_uniform')(x)
    value_=Dense(units=1,activation='linear',kernel_initializer='he_uniform')(x)
    ac_activation=Dense(units=self.action_size,activation='linear',kernel_initializer='he_uniform')(x)

    avg_ac_activation=Lambda(lambda x: K_back.mean(x,axis=1,keepdims=True))(ac_activation)

    concat_value=Concatenate(axis=-1)([value_,value_])
    concat_avg_ac=Concatenate(axis=-1)([avg_ac_activation,avg_ac_activation])

    for i in range(1,self.action_size-1):
        concat_value=Concatenate(axis=-1)([concat_value,value_])
        concat_avg_ac=Concatenate(axis=-1)([concat_avg_ac,avg_ac_activation])

    ac_activation=Subtract()([ac_activation,concat_avg_ac])

    merged_layers=Add()([concat_value,ac_activation])
    final_model=Model(inputs=inp,outputs=merged_layers)

    final_model.compile(loss='mean_squared_error',optimizer=Adam(lr=self.learning_rate))
    return final_model

Dense、Lambda 或 Multiplicate 等其他层工作正常,有什么解决此问题的建议吗?

首先是基础知识,您是否安装了合适的 Python 解释器版本?

例如尝试更新到 Python3.6(如果这与您相关)