Короткий посібник із створення схемного представлення ваших нейронних мереж за допомогою Jupyter або Google Colab
Часто під час роботи зі штучними нейронними мережами або іншими варіаціями, такими як згорточні нейронні мережі або рекурентні нейронні мережі, ми хочемо візуалізувати та створити діаграмне представлення нашої скомпільованої моделі. Це може вирішити дві цілі:
- Визначення та навчання кількох моделей дозволяє нам візуалізувати глибину нашої моделі та порівняти різні шари та їх послідовне розташування.
- Дозволяє краще зрозуміти структуру моделі, функції активації, які використовуються на кожному шарі, форму кожного шару (кількість нейронів) і параметри, які потрібно навчити
У Python доступно кілька пакетів, які можуть створити візуальне представлення наших моделей нейронних мереж. Перші три пакети можна використовувати ще до того, як модель буде навчена (модель потрібно лише визначити та скомпілювати); однак Tensor Boards вимагає від користувача навчити модель на точних даних, перш ніж можна буде візуалізувати архітектуру.
pip встановити visualkeraspip встановити ann_visualizerpip встановити graphviz
Нам не потрібно окремо встановлювати «Tensor Board» і «Keras Model Plot». Це надійде разом із початковим встановленням Tensorflow & Keras.
Ми можемо використовувати лише деякі бібліотеки, перелічені нижче. Більшість бібліотек можуть перетворити модель TensorFlow на діаграму без явного навчання на даних. Ви можете вважати це єдиним джерелом правди. Деякі бібліотеки, такі як Pandas, Skimage і OpenCV, стануть у нагоді під час читання структурованих даних або зображень.
# Імпорт необхідних бібліотекімпортувати панди як pdimport numpy as np # Імпортувати numpyз даних імпорту skimage, io # Імпорт бібліотеки skimage (дані – тестові зображення та приклади даних.# io - читання, збереження та відображення зображень.)із skimage.color імпорт rgb2grayімпортувати matplotlib.pyplot як plt # Імпортувати matplotlib.pyplot (фреймворк побудови в Python.)%matplotlib вбудованийimport os # Цей модуль забезпечує портативний спосіб використання залежних від операційної системи функцій.os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'попередження про імпорт# Придушити попередженняwarnings.filterwarnings('ignore')з IPython.display імпортувати дисплейімпорт cv2 як cv
з sklearn.metrics імпортувати confusion_matrixз sklearn.model_selection імпортувати train_test_splitз tensorflow.keras імпорт утилітиз tensorflow.keras.models імпорт Sequential,load_modelз tensorflow.keras.layers імпорт Dense, Dropout, Flatten, Conv2D, MaxPool2D, BatchNormalizationз tensorflow.keras.optimizers імпортувати Adamімпортувати tensorflow як tfімпортувати морський борт як sns
Кілька корисних посилань для вивчення додаткового вмісту ANN і CNN з нуля.
Ми визначимо три різні моделі CNN з різними гіперпараметрами. В ідеалі в реальному світі ми прагнемо впроваджувати різні архітектури, щоб максимізувати точність або будь-які відповідні показники, враховуючи, що ми створюємо модель для завдання класифікації з кількома категоріями. Наш вибір типу проблеми не матиме жодного впливу на використання пакетів візуалізації.
Ми створили визначені користувачем функції для створення трьох різних моделей окремо з різною кількістю шарів CNN, максимального об’єднання та щільних шарів.
4.1 – Архітектура 1 – неглибокі шари CNN + шари ANN
def construct_model():модель = послідовний()model.add(Conv2D(filters=64, kernel_size=(3, 3), input_shape=(128, 128, 1), activation=’relu’))model.add(Conv2D(filters=64, kernel_size=(3, 3), activation=’relu’))model.add(MaxPool2D((2, 2)))model.add(Flatten())model.add(Dense(256, activation=’relu’))model.add(Dense(12, activation=’softmax’))model.compile(loss=’categorical_crossentropy’, optimizer=’adam’, metrics=[‘accuracy’])модель повернення
4.2 — Архітектура 2 — Глибокі шари CNN + неглибокі шари ANN
def sconstruct_model():smodel = Sequential()smodel.add(Conv2D(filters=64, kernel_size=(3, 3), input_shape=(128, 128, 3), activation=’relu’))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Flatten())smodel.add(Dense(256, activation=’relu’))smodel.add(Dense(12, activation=’softmax’))#optimizer = Адам(lr=0.001)smodel.compile(loss=’categorical_crossentropy’, optimizer=’adam’, metrics=[‘accuracy’])#model.summary()повернення смодель
4.3 — Архітектура 3 — Глибокі рівні CNN та ANN
def cconstruct_model(learningRate):smodel = Sequential()smodel.add(Conv2D(filters=32, kernel_size=(3, 3), input_shape=(128, 128, 1), activation=’relu’))smodel.add(Conv2D(filters=32, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation=’relu’))smodel.add(Conv2D(filters=64, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(Conv2D(filters=128, kernel_size=(3, 3), activation=’relu’))smodel.add(MaxPool2D((2, 2)))smodel.add(Flatten())smodel.add(Dense(256, activation=’relu’))smodel.add(Dense(256, activation=’relu’))smodel.add(Dense(12, activation=’softmax’))оптимізатор = Adam(lr=learningRate)smodel.compile(loss=’categorical_crossentropy’, optimizer=optimizer, metrics=[‘accuracy’])smodel.summary()повернення смодельмодель=cconstruct_model(0.001)
Модуль Python під назвою ANN Visualizer дає змогу візуалізувати штучну нейронну мережу за допомогою кількох рядків коду (Gheorghiu, 2022). Він використовує Keras і модуль Python Graphviz для створення акуратного та привабливого графіка нейронної мережі. У вас є можливість візуалізувати всю мережу глибокого навчання або лише згортову нейронну мережу, яку ви створили завдяки прогресу глибокого навчання (Шах, 2018).
Використовуйте наведену нижче структуру, щоб створити pdf-представлення вашої нейронної мережі. Однак перед цим нам потрібно скомпілювати наведені вище моделі.
model=construct_model()
ann_viz(model, view=True, filename=”network.gv”, title=”MyNeural Network”)
- модель — Послідовна модель від Keras
- переглянути — Візуалізуйте графік після виклику ann_viz().
- ім'я файлу — Ім'я файлу
- назва — Будь-який конкретний заголовок для позначення графіка
з ann_visualizer.visualize імпортувати ann_vizann_viz(model, view=True, filename=”cconstruct_model”, title=”CNN — Модель 1 — Проста архітектура”)
Інструмент Python під назвою Visualkeras полегшує перегляд проектів нейронної мережі Keras (окремо або як частину TensorFlow). Більшість потреб у укладанні можна задовольнити з легкістю. Згорткові нейронні мережі (CNN) отримують значну вигоду від розробки багатошарових архітектур. Більшість моделей, включаючи прості мережі прямого зв’язку, отримують значну вигоду від генерації архітектури у стилі графа, яку підтримує цей модуль (Гавріков, 2022).
model1=construct_model()model2=sconstruct_model()model3=cconstruct_model(0.009)імпорт візуалокз PIL імпортувати ImageFontvisualkeras.layered_view(model1, legend=True)visualkeras.layered_view(model2, legend=True)visualkeras.layered_view(model3, legend=True)
Команда keras.utils.plot_model надає вбудовані функції для побудови моделі, визначеної та скомпільованої через Keras за допомогою пакетів Graphviz і pydot. Графічно він менш інтуїтивно зрозумілий, ніж пакунки, використані вище, але він описує базову архітектуру послідовної моделі (Team, n.d.).
tf.keras.utils.plot_model(модель1,to_file="model.png",show_shapes=Правда,show_dtype=False,show_layer_names=Правда,rankdir="ТБ",expand_nested=Правда,dpi=96,layer_range=Немає,show_layer_activations=Правда,)
Кілька гіперпараметрів, які слід враховувати:
- модель: Екземпляр скомпільованої моделі або об’єкта моделі Keras
- до_файлу: Ім'я файлу зображення
- show_shapes: відображення розмірів і форми кожного шару в нейронній мережі
- show_layer_activation: відображення функцій активації, які використовуються в нейронах
TensorBoard — це інтерфейс інформаційної панелі, який дозволяє користувачам візуалізувати журнали для різних прогонів моделей. Журнали можуть варіюватися від відстеження будь-яких показників перевірки моделі, таких як точність, відкликання, RMSE, MAPE та MSE за різні епохи, до створення концептуального графіка архітектури моделі. Це потужний інструмент для візуалізації того, чи відповідає запланована модель очікуваному дизайну, водночас виявляючи, як можна змінити модель за допомогою графіка операційного рівня.
Щоб використовувати цю функцію, нам потрібно спочатку завантажити TensorBoard, а потім створити каталог журналу.
%load_ext tensorboardз дати і часу імпортуз імпорту keras tensorflow# Визначте зворотний виклик Keras TensorBoard.logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S")tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)
Створіть зворотний виклик Keras TensorBoard і вкажіть каталог журналу перед навчанням. Ви можете переконатися, що дані графіка реєструються для візуалізації TensorBoard, надавши цей зворотній виклик model.fit(). Щойно ви запустите TensorBoard, завантаження може зайняти кілька хвилин.
model.fit(X2_train, Y2_train,batch_size=64,епох=5,callbacks=[tensorboard_callback])
Примітка. X2_train і Y2_train — це навчальні набори даних, які не відображені в кодах вище. Ви можете замінити це будь-якими власними навчальними даними.
TensorBoard завжди показує графік операційного рівня за замовчуванням. (Тег «За замовчуванням» виділено ліворуч.) Графік перевернутий порівняно з кодом, оскільки дані переміщуються знизу вгору. Але, як бачите, графік приблизно нагадує опис моделі Кераса з додатковими ребрами, що ведуть до інших обчислювальних вузлів (Tensorflow, 2022).
Більше інформації про те, як використовувати TensorBoard, можна знайти в розділі Довідка.
З комерційної точки зору, коли користувач має представити свій аналіз групі зацікавлених сторін, ці діаграми ускладнюють обговорення. Можливо, вони не мають особливого значення. Однак, з академічної та навчальної точки зору, використання цих пакетів для відображення цих глибоких архітектур навчання має переваги. Візуалізатор ANN, на мій погляд, виділяється серед інших, оскільки його легко сприймати діаграму, тоді як висновок графіка TensorBoard вимагає додаткових технічних деталей, перш ніж можна буде використовувати результати.
Гавріков, П. (2022, 13 квітня). visualkeras для Keras / TensorFlow. GitHub. https://github.com/paulgavrikov/visualkeras
Георгіу, Т. (2022, 21 жовтня). Візуалізатор ANN. GitHub. https://github.com/RedaOps/ann-visualizer
Шах, А. (2018, 28 квітня). Візуалізація штучних нейронних мереж (ШНМ) за допомогою лише одного рядка коду. Середній. https://towardsdatascience.com/visualizing-artificial-neural-networks-anns-with-just-one-line-of-code-b4233607209e
Переповнення стека. (n.d.). машинне навчання — Як ви візуалізуєте архітектури нейронних мереж? Data Science Stack Exchange. Отримано 29 жовтня 2022 р. з https://datascience.stackexchange.com/questions/12851/how-do-you-visualize-neural-network-architectures
Команда, К. (n.d.). Документація Keras: утиліти побудови моделі. Keras.io. Отримано 29 жовтня 2022 р. з https://keras.io/api/utils/model_plotting_utils/#modeltodot-function
Tensorflow. (2022, 6 січня). Вивчення графіка TensorFlow | TensorBoard. TensorFlow. https://www.tensorflow.org/tensorboard/graphs
Як візуалізувати архітектури нейронних мереж у Python Опубліковано з джерела https://towardsdatascience.com/how-to-visualize-neural-network-architectures-in-python-567cd2aa6d62?source=rss—-7f60cf5620c9—4 через https:// towarddatascience.com/feed
<!–
->
- Біткойн
- bizbuildermike
- blockchain
- відповідність блокчейну
- блокчейн-конференція
- Консультанти з блокчейнів
- coinbase
- coingenius
- Консенсус
- криптоконференція
- криптографічне видобування
- криптовалюта
- Децентралізований
- Defi
- Цифрові активи
- Ефіріума
- навчання за допомогою машини
- не замінний маркер
- plato
- платон ai
- Інформація про дані Платона
- Платоблокчейн
- PlatoData
- platogaming
- Багатокутник
- доказ ставки
- W3
- зефірнет