Что такое Tensorflow и с чем его едят? |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-02-01 19:46 В прошлой статье мы разобрались с обучением нейросети и частью того, как она работает. А в этой статье, мы разберём на коде, что такое TensorFlow, как пишут нейросеть и из чего она состоит. Tensorflow Tensorflow — это открытая программная библиотека для машинного обучения, разработанная компанией Google для решения задач построения и тренировки нейронной сети с целью автоматического нахождения и классификации образов, достигая качества человеческого восприятия. Применяется как для исследований, так и для разработки собственных продуктов Google. Основной API для работы с библиотекой реализован для Python, также существуют реализации для R, C Sharp, C++, Haskell, Java, Go и Swift. В наших статьях мы будем использовать Python, так что давайте перейдём к установке tensorflow на python. Tensorflow устанавливается также, как и обычная библиотека python через pip — pip install tensorflow. Но нужно следить за совместимости других библиотек с tensorflow, иначе они могут быть не совместимы и код может не работать. При наличии видеокарты, рекомендуем установить CUDA и cuDDN. Процесс установки Tensorflow для видеокарты Для начала смотрим, какая версия tensorflow подходит нам для pytohn, CUDA и cuDNN — *тык* ![]() Для начала начнём именно с cuDNN, а не с CUDA и tensorflow. Переходим в cuDNN Archive( *тык*), заходим в аккаунт Nvidia и смотрим подходящие версии для tensorflow и CUDA (*тык*). На момент написания статьи, мне подходит tensorflow-2.4.0. Я могу взять и 2.7.0, но предпочитаю чуть старые версии. После того, как вы определились с версиями, скачивайте необходимые, дальше подводных камней нет и вы с лёгкостью справитесь, но рассмотрим как установить cuDNN. После установки tensorflow и CUDA, идёт установка cuDNN. Вы скачиваете архив, распаковывайте и скопировать с возможной заменной файлы по пути к CUDA. Обычный путь установки: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/*ваша версия CUDA* Поздравляю, вы установили все необходимые компоненты для tensorflow и его самого. Рекомендую использовать среду Anaconda — дистрибутив Python и R для научных вычислений, который призван упростить управление пакетами и их развертывание. В состав дистрибутива входят пакеты обработки данных, подходящие для Windows, Linux и macOS. Он разработан и поддерживается компанией Anaconda, Inc., основанной Питером Ваном и Трэвисом Олифантом в 2012 году. Нужная нам среда бесплатная, но есть и не бесплатные версии. В процессе установки анаконды нет ничего сложного, как обычная установка, но после установки нужно будет проверить версию python в этой среде и установить tensorflow и нужные ему компоненты (рассмотрели это вверху). В анаконде нам нужен jupyter notebook, который также бесплатный и который, как не странно, нужно установить. Плюсы jupyter notebook в том, что мы можем запускать не весь код, а по отдельности, по частям и тем самым перезапускать не весь код при ошибке, а только часть. Это очень хорошая особенность, помогающая Data Science разработчикам. Даже в Google Colab такая функция есть. И всё, мы установили всё, что нужно и теперь можем перейти к коду. (Для новичков Python, Anaconda/Jupyter Notebook рекомендую посмотреть обучалки, чтобы понимать из чего, как и где работать). Для начала импортируем нужные объекты из tensorflow и создадим однослойную нейросеть: from tensorflow.keras.models import Sequential # Подключаем класс создания модели Squential ![]() Раньше Data Science разработчики писали всё полностью с нуля, было очень много кода, а сейчас всего пару строчек для создания такой простой модели. Теперь мы можем посмотреть, как она выглядят данные (характеристика) нейросети: model.summary() # Отображаем данные созданной модели ![]() Что же мы можем увидеть здесь? Давайте рассмотрим на коде, что такое веса. weights = model.get_weights() # Получаем веса модели (до этого, были сгенерированы случайным образом) ![]() При создании модели все веса генерируются случайным образом, то есть этакий набор для старта. С помощью кода выше нам выводиться массив со значениями весов. Мы можем поменять каждый вес нейрона по отдельности, так и вместе или вообще загрузить уже готовые. Посмотрим, как это реализовать. import numpy as np # Подключаем библиотеку numpy ![]() Видим новую для нас библиотеку numpy — библиотека с открытым исходным кодом, является быстрой, а в силу того, что поддерживает векторные операции с многомерными массивами — крайне удобная. Каждый вес имеет своё обозначение w1, w2, … wn. Переменную new_weight легко создать ориентируясь на model.summary(). Один слой — np.array([]). Внутренности определяем по количеству выводов, для одного — [wa, wb …, wn]. А веса идут по порядку, всё просто и нет ничего страшного. Посмотрим как загрузить и выгрузить веса: model.save_weights('model.h5') # Сохранение весов (чтобы не обучать заново) Всё просто и понятно, переходим дальше. Делаем предсказание нейросети. Да, мы её не обучили, но к обучению мы вернёмся через несколько статей. Предсказание получить легко, для начала придумаем входные значения от —? до +?. Затем преобразуем в формат для нейросети, добавляем размерность. А после делаем предсказание и выводим его. Код: x1 = 7.2 # Установим входное значение для x1 ![]() Мы получили предсказание, обработанное нейросетью по случайным или вашим весам. Попробуем вручную подсчитать вывод нейросети. Вывод = первый скрытый слой * wa + второй скрытый слой * wb (wa и wb последние нейроны, в нашем случае w5 и w6). Каждый скрытый слой = входное значение 1 * wa + входное значение 2 * wb. Для первого скрытого слоя веса w1 и w2, для второго w3 и w4. Код: H1 = x1 * w1 + x2 * w2 # Получаем значение скрытого нейрона H1 Значения совпадают, значит подсчитано всё верно. ![]() На этом моменте наша статья подошла к концу. Мы разобрали на коде, что такое TensorFlow, как пишут нейросеть и из чего она состоит. Надеюсь, что вам было интересно. В следующей статье рассмотрим функции активации и функции ошибок на коде. Источник: m.vk.com Комментарии: |
|