Python 如何从model.predict()结果中获取单个值
我正在尝试使用神经网络来预测在另一个文件中运行的汽车模拟器游戏的动作。我需要得到一个动作的预测值才能进入游戏,但我很难做到这一点。调用model.predict后,我尝试从数组中访问该值,但这会返回一个越界错误 一般来说,我对python是相当陌生的,更不用说使用keras了,但我的想法是,神经网络将根据其他玩游戏的人收集的一些数据(保存在CSV文件中)进行训练。然后,当神经网络发挥作用时,我将能够在每一帧传递游戏值,以生成预测动作。我想我已经做到了,但我无法得到一个预期的行动。这是神经网络Python 如何从model.predict()结果中获取单个值,python,tensorflow,machine-learning,neural-network,keras,Python,Tensorflow,Machine Learning,Neural Network,Keras,我正在尝试使用神经网络来预测在另一个文件中运行的汽车模拟器游戏的动作。我需要得到一个动作的预测值才能进入游戏,但我很难做到这一点。调用model.predict后,我尝试从数组中访问该值,但这会返回一个越界错误 一般来说,我对python是相当陌生的,更不用说使用keras了,但我的想法是,神经网络将根据其他玩游戏的人收集的一些数据(保存在CSV文件中)进行训练。然后,当神经网络发挥作用时,我将能够在每一帧传递游戏值,以生成预测动作。我想我已经做到了,但我无法得到一个预期的行动。这是神经网络
def build_nn(self):
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error', optimizer=Adam(lr=self.learning_rate))
return model
以及我预测动作的代码(stateVector未按原样接受,因此我必须从中获取值)
您正在向网络提供一个包含8个元素的列表,而它需要一个包含8维样本的列表。实际上:
>>> a = [currentLane, offRoad, collision, lane1, lane2, lane3, reward, a_action]
>>> a = np.array(a) # convert to a numpy array
>>> a = np.expand_dims(a, 0) # change shape from (8,) to (1,8)
>>> model.predict(a) # voila!
您正在向网络提供一个包含8个元素的列表,而它需要一个包含8维样本的列表。实际上:
>>> a = [currentLane, offRoad, collision, lane1, lane2, lane3, reward, a_action]
>>> a = np.array(a) # convert to a numpy array
>>> a = np.expand_dims(a, 0) # change shape from (8,) to (1,8)
>>> model.predict(a) # voila!