Как вы получаете результат модели keras в виде массива numpy?

#python #numpy #machine-learning #keras #deep-learning

Вопрос:

Как мне получить выходные данные модели keras в виде массива numpy? Мой код выглядит так:

 env = gym.make('Chess-v0')
obs = env.reset()
type(obs)

done = False

num_actions = len(env.legal_moves)

obs = chess.Board()

model = models.Sequential()

def dqn(board):
    
    inputs = layers.Input(shape=(1,))

    layer1 = layers.Dense(256, activation="relu", input_shape=(1,))(inputs)
    layer2 = layers.Dense(512, activation="relu")(layer1)
    layer3 = layers.Dense(512, activation="relu")(layer2)
    
    layer4 = layers.Dense(512, activation="relu")(layer3)
    layer5 = layers.Dense(512, activation="relu")(layer4)
    
    layer6 = layers.Dense(1)(layer5)
    
    action = np.argmax(--->>> layer6_output <<<---)
    
    return keras.Model(inputs=inputs, outputs=action)
 

итак, как мне получить вывод layer6 в виде массива numpy?

Комментарии:

1. попробуйте прочитать это: kite.com/python/answers/…

Ответ №1:

Вы можете использовать tf.tensor.eval для возврата массива np, который вы можете прочитать в документах docs. а затем вы просто добавляете tf.tensor.eval в слой 6

Ответ №2:

Как только вы определили модель с помощью чего-то подобного myModel=dqn(board) , вы можете использовать myModel.predict(x) ее для получения выходных данных в виде массива Numpy.

Если вы используете Tensorflow в качестве серверной части с включенным активным выполнением, вы можете просто ввести .numpy() свой тензор.