如何使用观察值/向量作为参数?

时间:2019-05-25 16:35:10

标签: python machine-learning openai-gym

我正在赛车游戏中添加一个代理,以便根据观察结果向左或向右转。我尝试运行代码,但是不断出现错误,

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()不带参数,并返回观察向量。我不知道是否可以使用向量作为参数。我对机器学习非常陌生,想知道我是否还有其他做错的事情?

0 个答案:

没有答案