Ошибка преобразования фигуры в аргумент TensorShape: int () должна быть строкой, байтовым объектом или числом, а не «кортежем» - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь построить DQNAgent для этой среды:

ENV_NAME = 'CartPole-v0'
# Get the environment and extract the number of actions.
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n

, и я вызываю функцию, подобную этой:

agent = buildAgent(nb_actions, env.observation_space.shape)

, которая создает агент следующим образом:

def buildModel(num_actions, state_size):
    input_layer = Input(shape=(1,state_size))
    x = Flatten()(input_layer)
    x = Dense(16, activation='relu')(x)
    x = Dense(16, activation='relu')(x)
    x = Dense(16, activation='relu')(x)
    output = Dense(num_actions, activation='linear')(x)
    model = Model(inputs=input_layer, outputs=output)
    print(model.summary())
    model = Model(inputs=input_layer, outputs=output)
    return model

a = DQNAgent(model=buildModel(mod = model, observation_space = observation_space, action_space = nb_actions),
                      nb_actions = nb_actions,
                      policy = buildPolicy(pol = policy),
                      memory = buildMemory(mem = memory),
                      enable_double_dqn = True,
                      enable_dueling_network = False,
                      gamma=gamma,
                      target_model_update=target_model_update,
                      train_interval=train_interval,
                      delta_clip=delta_clip,
                      pretraining_steps=pretraining_steps,
                      n_step=n_step,
                      large_margin=large_margin,
                      lam_2=lam_2)

Но возвращает эту ошибку:

TypeError: Error converting shape to a TensorShape: int() argument must be a string, a bytes-like object or a number, not 'tuple'.

Кто-нибудь знает, как ее решить?

...