def create_q_model(num_actions): # Network defined by the Deepmind paper inputs = layers.Input(shape=(4, 84, 84, 1)) # Convolutions on the frames on the screen layer1 = layers.Conv2D(32, 8, strides=4, activation="relu")(inputs) layer2 = layers.Conv2D(64, 4, strides=2, activation="relu")(layer1) layer3 = layers.Conv2D(64, 3, strides=1, activation="relu")(layer2) layer4 = layers.Flatten()(layer3) layer5 = layers.Dense(512, activation="relu")(layer4) action = layers.Dense(num_actions, activation="linear")(layer5) return tf.keras.Model(inputs=inputs, outputs=action)