Если TensorFlow лучшая библиотека построения нейросетей любой сложности, то этот ее модуль добавляет высокоуровневые инструменты, которые делают эту работу всего в несколько строк.
Это Keras, который распространяется как в составе TensorFlow, так и в виде отдельной библиотеки (однако все равно требует установки низкоуровневых библиотек для работы с нейросетями).
Рассмотрим способ создания моделей, состоящих из нейронов, где выход каждого направляется во все нейроны из последующего слоя (полносвязные слои - Dense):
Определим последовательную модель (то есть очередной слой добавляется поверх предыдущего без разветвлений) с набором полносвязных слоев:
В скобках конструктора Dense указано количество нейронов в каждом слое. Выведем результат воздействия нейронной сети на вход x:
Слои и веса
Обращение к свойству нейросети layers приводит к выводу списка слоев:
Для каждого слоя либо всей нейросети можно вывести список переменных и весов посредством обращения к свойствам weights или variables:
Следует отметить, что в данном примере веса нейросети инициализируются после первого вызова, так как для этого ей нужно знать форму своего входа. Соответственно, обращение до этого этапа к указанным свойствам приведет к ошибке:
Альтернативным путем является либо задание условного слоя Input модели, в котором и указывается форма входа, либо определение соответствующего параметра в первом слое:
Входы и выходы слоев
Каждый слой в свойствах input и output хранит входы и выходы на определенных данных. Аналогично у моделей есть параметры, устанавливающие их входы и выходы - inputs и outputs. Вот как можно определить новую модель, имеющую входы как у ранее определенной nn, а выходы - список выходов слоев модели nn:
Посмотрим, что выдает модель на наших данных:
Для сравнения:
Описание
Вы также можете вызвать описание модели путем обращения к методу summary. Во избежание ошибки это следует делать либо после первого вызова модели на данных либо с условием указания размеров входа:
В первом слое параметров - 9 в матрице kernel (3x3) и 3 в члене смещения bias (смотри на рисунке выше), и 8 во втором слое.