我正在研究神经网络,我将在Dueling DQN算法中使用它,但是我遇到了keras层Subtract的问题,当我使用这个层时我收到了这个错误:
AttributeError:模块'keras.layers'没有属性'Subtract'
方法,我使用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正常工作,有任何建议如何解决这个问题?
答案 0 :(得分:0)
基础知识首先,您是否安装了相应的Python解释器版本?
尝试更新到Python3.6以获取示例(如果这与您相关)