如何建立一个包含元组列表的神经网络模型

我正在尝试使用Keras模型制作一个AI,学习如何打乒乓球。我当前模型接受的输入是agent.rect元组的列表,该列表取自pygame.Rect()函数和agent.rect.center以及我编码的机器人和游戏的球。我如何建立一种可以接受这种输入并输出适当结果的模型。

我已经尝试将input_dim从原始代码更改为18,但这是行不通的

这是我的模特

def network(self):
        model = Sequential()
        model.add(Dense(output_dim=120,activation='relu',input_dim=6))
        model.add(Dropout(0.15))
        model.add(Dense(output_dim=120,activation='relu'))
        model.add(Dropout(0.15))
        model.add(Dense(output_dim=120,activation='relu'))
        model.add(Dropout(0.15))
        model.add(Dense(output_dim=3,activation='softmax'))
        opt = Adam(self.learning_rate)
        model.compile(loss='mse',optimizer=opt)
        return model

这是我尝试输入的状态

def get_state(self,pong,player,bot):

        state = [player.rect,player.rect.center,pong.rect,pong.rect.center,bot.rect,bot.rect.center]
        self.length = len(state)
        return np.asarray(state)

这就是错误所在

print self.model.predict(np.array(next_state))
                target = reward + self.gamma * np.amax(self.model.predict(np.array([next_state]))[0])
            target_f = self.model.predict(np.array([state]))
            target_f[0][np.argmax(action)] = target
            self.model.fit(np.array([state]),target_f,epochs=1,verbose=0)

错误输出为ValueError:检查输入时出错:预期density_1_input具有形状(6,)但具有形状(1,)的数组

ccpig520520 回答:如何建立一个包含元组列表的神经网络模型

尝试一下:

n_output = 3

def network(self):
        model = Sequential()
        model.add(Dense(6,input_dim=6,kernel_initializer='normal',activation='relu'))
        model.add(Dense(4,activation='relu'))
        model.add(Dense(n_output,activation='softmax'))
        opt = Adam(self.learning_rate)
        model.compile(loss='mse',optimizer=opt)
        return model
本文链接:https://www.f2er.com/3148562.html

大家都在问