我正在赛车游戏中添加一个代理,以便根据观察结果向左或向右转。我尝试运行代码,但是不断出现错误,
TypeError:不能将序列乘以'float'类型的非整数
我试图在下面的代码中将observation_n变为浮点数,
import gym
import numpy
env = gym.make('flashgames.NeonRace-v0')
env.configure(remotes=1)
observation_n = env.reset()
while True:
# agent below this line
def NN(m1, m2, w1, w2, b):
z = m1 * w1 + m2 * w2 + b
return sigmoid(z)
def sigmoid(x):
return 1 / (1 + numpy.exp(-x))
w1 = numpy.random.randn()
w2 = numpy.random.randn()
b = numpy.random.randn()
choice = ""
if NN(float(observation_n), float(observation_n), w1, w2, b) >= 0.5:
choice = "ArrowRight"
elif NN(float(observation_n), float(observation_n), w1, w2, b) < 0.5:
choice = "ArrowLeft"
# agent above this line
action_n = [[('KeyEvent', 'ArrowUp', True), ('KeyEvent', choice, True)] for ob in observation_n]
observation_n, reward_n, done_n, info = env.step(action_n)
env.render()
我现在收到此错误,
TypeError:float()参数必须是字符串或数字,而不是“列表”
我做了一些研究,发现env.reset()不带参数,并返回观察向量。我不知道是否可以使用向量作为参数。我对机器学习非常陌生,想知道我是否还有其他做错的事情?