Шаг 58.
Глубокое обучение на Python. ... . Повторная реализация первого примера в TensorFlow. Простой класс Sequential

    На этом шаге мы приведем реализацию этого класса.

    Теперь создадим класс NaiveSequential, объединяющий слои в цепочку. Он обертывает список слоев и реализует метод __call__(), который просто вызывает по порядку слои в этом списке, передавая входные данные. Он также имеет свойство weights, упрощающее наблюдение за весами слоев.

class NaiveSequential:
    def __init__(self, layers):
        self.layers = layers

    def __call__(self, inputs): 
        x = inputs
        for layer in self.layers: 
            x = layer(x) 
            return x

    @property 
    def weights(self): 
        weights = []
        for layer in self.layers:
            weights += layer.weights 
            return weights

    Используя классы NaiveDense и NaiveSequential, можно создать имитацию модели Keras:

model = NaiveSequential([
    NaiveDense(input_size=28 * 28, output_size=512, activation=tf.nn.relu), 
    NaiveDense(input_size=512, output_size=10, activation=tf.nn.softmax)
])

assert len(model.weights) == 4

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




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