Я добавляю агента в гоночную игру, чтобы повернуть налево или направо на основании наблюдения.Я пытаюсь запустить код, но получаю сообщение об ошибке:
TypeError: невозможно умножить последовательность на не-int типа 'float'
Я пыталсячтобы сделать наблюдение_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 () не принимает аргументов и возвращает вектор наблюдений.Я не знаю, могу ли я использовать вектор в качестве параметра.Я очень новичок в машинном обучении и мне интересно, что-то еще я делаю не так?