我和我的项目合作伙伴目前在我们最新的大学项目中面临着一个问题。我们的任务是实现一个玩 Pong 游戏的神经网络。我们将球的位置、球的速度和球拍的位置提供给我们的网络,并具有三个输出:向上、向下 DO_NOTHING。当玩家获得 11 分后,我们用所有状态、做出的决策以及做出的决策的奖励来训练网络(请参阅reward_cal())。我们面临的问题是,损失始终保持在特定值,仅取决于学习率。因此,网络总是做出相同的决定,即使我们认为它是非常错误的。
请帮助我们找出我们做错了什么,我们感谢您的每一个建议!以下是我们的代码,如有任何问题请随时询问。我们对这个话题还很陌生,所以如果有一些完全愚蠢的事情,请不要粗鲁:D
这是我们的代码:
import sys, pygame, time
import numpy as np
import random
from os.path import isfile
import keras
from keras.optimizers import SGD
from keras.layers import Dense
from keras.layers.core import Flatten
pygame.init()
pygame.mixer.init()
#surface of the game
width = 400
height = 600
black = 0, 0, 0 #RGB value
screen = pygame.display.set_mode((width, height), 0, 32)
#(Resolution(x,y), flags, colour depth)
font = pygame.font.SysFont('arial', 36, bold=True)
pygame.display.set_caption('PyPong') #title of window
#consts for the game
acceleration = …Run Code Online (Sandbox Code Playgroud) python reinforcement-learning neural-network keras tensorflow