TensorFlow - это библиотека глубокого обучения с открытым исходным кодом, изначально разработанная Google Brain Team. Он стал общедоступным 9 ноября 2015 года и активно поддерживается Google. TensorFlow имеет различные приложения и широко используется для глубокого обучения. В реальном мире TensorFlow используется для распознавания изображений, анализа тональности, распознавания речи, приложений электронной коммерции и многого другого.

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

Необходимые условия для начала:

  1. Загрузите данные из Kaggle.
  2. Облачная платформа Google Collab: облачный сервис, предоставляемый Google. Мы можем использовать его для разработки и тестирования наших моделей искусственного интеллекта с помощью ускорителей графического процессора бесплатно. Нам не нужно настраивать локальный компьютер, чтобы начать работу, просто !!.
  3. Python 3, Numpy, Tensorflow и Keras

В Google Collab создайте новую записную книжку на Python. Перейдите в раздел «Файл»> «Новая записная книжка Python 3», как показано на рисунке ниже. Будет создан новый блокнот.

Измените время выполнения, чтобы использовать ускоритель графического процессора, чтобы ускорить время обработки. Чтобы настроить графический процессор, выберите Время выполнения - ›Изменить время выполнения -› Аппаратное ускорение - ›Графический процессор. Теперь вы готовы писать код !!!

Чтобы использовать TensorFlow с графическим процессором, запустите следующий код:

import tensorflow as tf
device_name = tf.test.gpu_device_name()
if device_name != ‘/device:GPU:0’:
raise SystemError(‘GPU device not found’)
print(‘Found GPU at: {}’.format(device_name))

https://colab.research.google.com

Загрузите данные, используя следующий код:

import pandas as pd
from sklearn.model_selection import train_test_split
import io
from google.colab import files
file_uploaded = files.upload()

Загрузите файл, который вы скачали из Kaggle, как показано на изображении ниже:

Прочтите данные из файла CSV и разделите их на переменные X и Y:

import pandas as pd
import io
import keras
from sklearn.model_selection import train_test_split
dataset = pd.read_csv(io.StringIO(file_uploaded['data.csv'].decode('utf-8')))
# split into input (X) and output (Y) variables
dataset['diagnosis'] = dataset['diagnosis'].map({'B': 1, 'M': 0})
X = dataset.iloc[:, 2:32].values
y = dataset.iloc[:, 1].values
y = keras.utils.to_categorical(y, num_classes = 2)

Теперь давайте разделим данные на обучающие и тестовые. Мы будем использовать библиотеку sklearn для разделения данных.

X_train, X_test, y_train, y_test = train_test_split(X, y,test_size = 0.2)
#test the shape of the train and test 
print(‘x_train shape:’, X_test.shape)
print(X_train.shape[0], ‘train samples’)
print(X_test.shape[0], ‘test samples’)

Следующая установка - построить двухуровневую модель CNN. В последовательной модели мы можем складывать скрытые слои, как показано в приведенном ниже коде. В каждом слое по 32 нейрона. LeakyReLU - это функция активации, которая очень популярна в CNN среди других функций активации, поскольку позволяет избежать проблемы исчезающего градиента. Мы используем сигмовидную активацию для выходного слоя.

model = Sequential()
dim = X_train.shape[1]
#Layer 1
model.add(Dense(32, input_dim = dim))
model.add(LeakyReLU())
model.add(Dropout(0.25))
#Layer 2
model.add(Dense(32))
model.add(LeakyReLU())
model.add(Dropout(0.25))
#output layer
model.add(Dense(2))
model.add(Activation(‘sigmoid’))
model.compile(optimizer = ’rmsprop’,loss = ’binary_crossentropy’,
metrics = [‘accuracy’])

Обучим нашу модель. Мы установили размер пакета 32, что означает, что 32 строки будут обрабатываться одновременно. Весь процесс обучения будет состоять из 5 итераций, поскольку мы установили 5 эпох.

#Fit/Train the model
bsize = 32  
model.fit(X_train, y_train, batch_size = bsize, epochs = 5, verbose = 1,validation_data = (X_test, y_test))

Вывод

Ну наконец то!! мы обучили модель, и вы можете увидеть результаты. В каждую эпоху точность увеличивается и итоговая точность составляет 63%, что неплохо :). Это означает, что наша обученная модель теперь может обнаруживать злокачественный или доброкачественный рак груди с точностью 63%. Вы можете скачать работающую версию кода здесь.

Резюме

В этой статье мы узнали, как быстро разработать собственную модель нейронной сети, используя данные с открытым исходным кодом из облачных сервисов Kaggle, TensorFlow, Keras и Google Collab. Это руководство представляет собой простой пример того, как быстро мы можем разработать модель нейронной сети. Я надеюсь, что это руководство будет полезно для начинающих, которые хотят изучить машинное обучение.