Искусственный интеллект в прикладных науках. Медицина. Джейд Картер. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джейд Картер
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 2024
isbn:
Скачать книгу
График точности и потерь

      plt.plot(history.history['accuracy'], label='accuracy')

      plt.plot(history.history['val_accuracy'], label='val_accuracy')

      plt.xlabel('Epoch')

      plt.ylabel('Accuracy')

      plt.legend()

      plt.show()

      ```

      Этот пример демонстрирует создание и обучение модели сверточной нейронной сети (CNN) для классификации медицинских изображений. Обратите внимание, что для запуска этого кода вам потребуется наличие набора данных медицинских изображений и указание правильных путей к этим данным в переменных `train_data_dir` и `test_data_dir`.

      Разберем этапы кода подробнее.

      1. Импорт библиотек:

      ```python

      import numpy as np

      import matplotlib.pyplot as plt

      import tensorflow as tf

      from tensorflow.keras.preprocessing.image import ImageDataGenerator

      from tensorflow.keras.models import Sequential

      from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

      ```

      – `numpy` используется для работы с массивами чисел.

      – `matplotlib.pyplot` используется для построения графиков.

      – `tensorflow` – фреймворк глубокого обучения.

      – `ImageDataGenerator` используется для предварительной обработки изображений перед подачей их в модель.

      – `Sequential` используется для создания последовательной модели.

      – `Conv2D`, `MaxPooling2D`, `Flatten` и `Dense` – типы слоев нейронной сети.

      2. Загрузка данных:

      ```python

      train_data_dir = 'path_to_training_data_directory'

      test_data_dir = 'path_to_test_data_directory'

      train_datagen = ImageDataGenerator(rescale=1./255)

      test_datagen = ImageDataGenerator(rescale=1./255)

      train_generator = train_datagen.flow_from_directory(

      train_data_dir,

      target_size=(150, 150),

      batch_size=32,

      class_mode='binary')

      test_generator = test_datagen.flow_from_directory(

      test_data_dir,

      target_size=(150, 150),

      batch_size=32,

      class_mode='binary')

      ```

      – Здесь задаются пути к каталогам с обучающими и тестовыми данными.

      – `ImageDataGenerator` используется для масштабирования значений пикселей в диапазоне от 0 до 1.

      – `flow_from_directory` загружает изображения из указанных каталогов, изменяет их размер до 150x150 пикселей и разбивает их на пакеты размером 32 изображения.

      3. Создание модели CNN:

      ```python

      model = Sequential([

      Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),

      MaxPooling2D(2, 2),

      Conv2D(64, (3, 3), activation='relu'),

      MaxPooling2D(2, 2),

      Conv2D(128, (3, 3), activation='relu'),

      MaxPooling2D(2, 2),

      Conv2D(128, (3, 3), activation='relu'),

      MaxPooling2D(2, 2),

      Flatten(),

      Dense(512, activation='relu'),

      Dense(1, activation='sigmoid')

      ])

      ```

      – Создается последовательная модель.

      – Добавляются слои свертки (`Conv2D`) и слои пулинга (`MaxPooling2D`), которые позволяют модели извлекать признаки из изображений.

      – Последние слои – полносвязные слои (`Dense`), которые выполняют классификацию.

      4. Компиляция модели:

      ```python

      model.compile(loss='binary_crossentropy',

      optimizer='adam',

      metrics=['accuracy'])

      ```

      – Здесь модель компилируется с функцией потерь `binary_crossentropy`, оптимизатором `adam` и метрикой `accuracy` для оценки производительности модели во время обучения.

      5. Обучение модели:

      ```python

      history = model.fit(

      train_generator,

      steps_per_epoch=train_generator.samples/train_generator.batch_size,

      epochs=10,

      validation_data=test_generator,

      validation_steps=test_generator.samples/test_generator.batch_size)

      ```

      – Обучение модели происходит с использованием метода `fit`.

      – Обучающие данные подаются через `train_generator`, тестовые данные через `test_generator`.

      – `steps_per_epoch` и `validation_steps` задают количество шагов на каждую эпоху обучения