定义阵列的Keras模型

2024-09-30 05:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个输入将进入我的模型,它们是: 120 X 20列表 2X[2]数组或类似[[a,b],[c,d],…]的n个数 三。[a,b]阵列

这使模型变得简单,但我不明白如何定义这个模型的输入和输出。你知道吗

模型应该有两个隐藏层,每个层32个。你知道吗

    inputBoard = tf.keras.Input(shape=(20,20))
    x1 = tf.keras.layers.Flatten()(inputBoard)
    boardDense = tf.keras.layers.Dense(32, activation='relu')(x1)

    inputAgent = tf.keras.Input(shape=(None, 2))
    x2 = tf.keras.layers.Flatten()(inputAgent)
    agentDense = tf.keras.layers.Dense(16, activation='relu')(x2)

    inputReward = tf.keras.Input(shape=(1,1))
    x3 = tf.keras.layers.Flatten()(inputReward)
    rewardDense = tf.keras.layers.Dense(4, activation='relu')(x3)

    concat = tf.keras.layers.concatenate([boardDense, agentDense, rewardDense])

    hidden = tf.keras.layers.Dense(32, activation = 'relu')(concat)
    hidden2 = tf.keras.layers.Dense(32, activation='relu')(hidden)

    output = tf.keras.layers.Dense(4, activation="softmax")(hidden2)

    self.model = tf.keras.Model(inputs=[inputBoard, inputAgent, inputReward], outputs = output)

    self.model.build()
    optimizer = tf.keras.optimizers.Adam(lr = self.learningRate)
    self.model.compile(loss = 'mse', optimizer = optimizer)
    self.model.summary()

Tags: 模型selfinputmodellayerstfactivationkeras

热门问题