Шаг 188.
Глубокое обучение на Python. Работа с Keras: глубокое погружение. Разные способы создания моделей Keras. Смешивание и согласование различных компонентов

    На этом шаге мы рассмотрим возможность смешивания разных подходов.

    Важно отметить, что выбор одного из описанных подходов к созданию моделей - с помощью класса Sequential, функционального API или путем создания подкласса класса Model - не препятствует использованию других подходов. Все модели в Keras API способны беспрепятственно взаимодействовать друг с другом, будь то модели Sequential, функциональные модели или подклассы класса Model, написанные с нуля. Все они являются частью общего спектра рабочих процессов.

    Например, подкласс класса Layer или Model можно использовать в функциональной модели.


Пример 7.15. Создание функциональной модели, включающей подкласс класса Model
class Classifier(keras.Model):

  def __init__(self, num_classes=2):
    super().__init__()
    if num_classes == 2:
      num_units = 1
      activation = "sigmoid" 
    else:
      num_units = num_classes
      activation = "softmax"
    self.dense = layers.Dense(num_units, activation=activation)

  def call(self, inputs):
    return self.dense(inputs)

    И наоборот, функциональную модель можно применить в подклассе класса Layer или Model.


Пример 7.16. Создание подкласса класса Model, использующего функциональную модель
inputs = keras.Input(shape=(64,))
outputs = layers.Dense(1, activation="sigmoid")(inputs)
binary_classifier = keras.Model(inputs=inputs, outputs=outputs)

class MyModel(keras.Model):

  def __init__(self, num_classes=2):
    super().__init__()
    self.dense = layers.Dense(64, activation="relu")
    self.classifier = binary_classifier

  def call(self, inputs):
    features = self.dense(inputs)
    return self.classifier(features)

model = MyModel()

    На следующем шаге мы рассмотрим критерии выбора подходящего инструмента.




Предыдущий шаг Содержание Следующий шаг