Найти в Дзене

ИИ

Искусственный интеллект на Python и Tensorflow В продолжении предыдущей статьи мы займемся разработкой более сложного искусственного интеллекта, что будет различать фото кошек и собак. В прошлой статье мы рассмотрели базовые концепции нейронной сети. На этот раз мы создадим куда более сложный проект, что будет распознавать пользовательские картинки. Нейронная сеть будет понимать: находится ли на фото изображение кота или же изображение собачки. Какие библиотеки нам потребуются? В прошлой статье мы использовали лишь одну библиотеку – numpy. Без этой библиотеки нам не обойтись и в этот раз.  Numpy – библиотека, что позволяет поддерживать множество функций для работы с массивами, а также содержит поддержку высокоуровневых математических функций, предназначенных для работы с многомерными массивами. По причине того, что нейронные сети – это математика, массивы и наборы данных, то без numpy – не обойтись. Также мы будем использовать библиотеку Tensorflow. Она создана компанией Google и служи

Искусственный интеллект на Python и Tensorflow

В продолжении предыдущей статьи мы займемся разработкой более сложного искусственного интеллекта, что будет различать фото кошек и собак.

В прошлой статье мы рассмотрели базовые концепции нейронной сети. На этот раз мы создадим куда более сложный проект, что будет распознавать пользовательские картинки. Нейронная сеть будет понимать: находится ли на фото изображение кота или же изображение собачки.

Какие библиотеки нам потребуются?

В прошлой статье мы использовали лишь одну библиотеку – numpy. Без этой библиотеки нам не обойтись и в этот раз. 

Numpy – библиотека, что позволяет поддерживать множество функций для работы с массивами, а также содержит поддержку высокоуровневых математических функций, предназначенных для работы с многомерными массивами.

По причине того, что нейронные сети – это математика, массивы и наборы данных, то без numpy – не обойтись.

Также мы будем использовать библиотеку Tensorflow. Она создана компанией Google и служит для решения задач построения и тренировки нейронной сети. За счет неё процесс обучение нейронки немного проще, нежели при написании с использованием только numpy.

Ну и последняя, ​​но не менее важная – библиотека Matplotlib. Она служит для восстановления данных с двумерной графикой. На ее основе можно построить графики, изображения и прочие визуальные данные, которые воспринимаются человеком значительно проще и лучше, имеют нулевые и визуальные характеристики

Среда разработки

В качестве среды разработки мы будем использовать специальный сервис от Google — Colab. Colab позволяет обычно писать и выполнять произвольный код Python с помощью и особенно хорошо подходит для машинного обучения, анализа данных и обучения.

Colab полностью бесплатен и позволяет выполнять код блоками. К примеру, мы можем выполнить блок кода, где у нас идет обучение нейронки, а далее мы можем всегда выполнять не всю программу с начала и до конца, а лишь тот участок кода, где мы указываем новые данные для тестирования уже обученной нейронки.

Такой принцип существенно экономит время и по этой причине мы и будем использовать сервис Google Colab

Код для реализации проекта из видео:

# Импорт библиотек и классов

import numpy as np

import tensorflow as tf

import tensorflow_datasets as tfds

from tensorflow.keras.preprocessing.image import load_img, img_to_array

from tensorflow.keras.layers import Dense, GlobalAveragePooling2D, Dropout

import matplotlib.pyplot as plt

from google.colab import files

# Подгрузка датасета от Microsoft

train, _ = tfds.load('cats_vs_dogs', split=['train[:100%]'], with_info=True, as_supervised=True)

# Функция для изменения размеров изображений SIZE = (224, 224)

def resize_image(img, label):

img = tf.cast(img, tf.float32)

img = tf.image.resize(img, SIZE)

img /= 255.0

return img, label

# Уменьшаем размеры всех изображений, полученных из датасета

train_resized = train[0].map(resize_image) train_batches = train_resized.shuffle(1000).batch(16) # Создание основного слоя для создания модели base_layers=tf.keras.applications.MobileNetV2(input_shape=(SIZE[0], SIZE[1], 3), include_top=False)

# Создание модели нейронной сети

model = tf.keras.Sequential([

base_layers,

GlobalAveragePooling2D(),

Dropout(0.2),

Dense(1)

]) model.compile(optimizer='adam', loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy'])

# Обучение нейронной сети (наши картинки, одна итерация обучения)

model.fit(train_batches, epochs=1)

# Функция для подгрузки изображений

files.upload()

# Сюда укажите названия подгруженных изображений

images = [] #

Перебираем все изображения и даем нейронке шанс определить что находиться на фото

for i in images:

img = load_img(i)

img_array = img_to_array(img)

img_resized, _ = resize_image(img_array, _) img_expended = np.expand_dims(img_resized, axis=0) prediction = model.predict(img_expended)

plt.figure()

plt.imshow(img)

label = 'Собачка' if prediction > 0 else 'Кошка' plt.title('{}'.format(label))

Изучение программирования

А вы хотите стать программистом и начать разрабатывать самостоятельно ИИ или хотя бы использовать уже готовые для своих собственных проектов? Предлагаем нашу программу обучения по языку Python. В ходе программы вы научитесь работать с языком, изучите построение мобильных проектов, научитесь создавать полноценные веб сайты на основе фреймворка Джанго, а также в курсе будет модуль по изучению нескольких готовых библиотек для искусственного интеллекта. Взяты с

Искусственный интеллект на Python и Tensorflow