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(如果这与您相关)
我正在研究神经网络,我将在 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(如果这与您相关)