Перейти к содержимому

Keras json что это

  • автор:

Обучение моделей Keras в большом масштабе с помощью Машинного обучения Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: пакет SDK для Python azure-ai-ml версии 2 (текущая версия)

Из этой статьи вы узнаете, как запустить сценарии обучения Keras с помощью пакета SDK Для Python машинного обучения Azure версии 2.

В примере кода в этой статье используется Машинное обучение Azure для обучения, регистрации и развертывания модели Keras, созданной с помощью серверной части TensorFlow. Модель, глубокая нейронная сеть (DNN), созданная с помощью библиотеки Keras Python , работающей поверх TensorFlow, классифицирует рукописные цифры из популярного набора данных MNIST.

Keras — это высокоуровневый API нейронной сети, который может работать поверх других популярных платформ DNN для упрощения разработки. С помощью Машинного обучения Azure вы можете быстро масштабировать задания обучения с помощью эластичных облачных вычислительных ресурсов. Вы также можете отслеживать обучающие запуски, управлять версиями моделей, развертывать модели и многое другое.

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

Если вы используете API Keras tf.keras, встроенный в TensorFlow, а не автономный пакет Keras, вместо этой статьи см. статью Обучение моделей TensorFlow.

Предварительные требования

Чтобы воспользоваться преимуществами этой статьи, вам потребуется:

  • Доступ к подписке Azure. Если у вас еще нет учетной записи, создайте бесплатную учетную запись.
  • Запустите код, приведенный в этой статье, с помощью вычислительного экземпляра Машинного обучения Azure или собственной записной книжки Jupyter.
    • Вычислительный экземпляр Машинного обучения Azure — скачивание или установка не требуется
      • Выполните инструкции Создание ресурсов, чтобы приступить к созданию выделенного сервера записной книжки, предварительно загруженного с помощью пакета SDK и репозитория примеров.
      • В папке примеров глубокого обучения на сервере записных книжек найдите готовую и развернутую записную книжку, перейдя в этот каталог: одношаговая инструкция tensorflow для заданий > python > версии 2 > для пакета SDK > для одношагового > обучения tensorflow > train-hyperparameter-tune-deploy-with-keras.
      • Установите пакет SDK машинного обучения Azure (версия 2).

      Вы также можете найти завершенную версию Jupyter Notebook этого руководства на странице примеров GitHub.

      Перед запуском кода в этой статье для создания кластера GPU необходимо запросить увеличение квоты для рабочей области.

      Настройка задания

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

      Подключение к рабочей области

      Сначала необходимо подключиться к рабочей области Машинного обучения Azure. Рабочая область Машинного обучения Azure — это ресурс верхнего уровня данной службы. Она предоставляет централизованное место для работы со всеми артефактами, создаваемыми при использовании Машинного обучения Azure.

      Мы используем DefaultAzureCredential для получения доступа к рабочей области. Эти учетные данные должны обрабатывать большинство сценариев проверки подлинности пакета Azure SDK.

      Если DefaultAzureCredential это не подходит для вас, просмотрите azure-identity reference documentation или Set up authentication дополнительные доступные учетные данные.

      # Handle to the workspace from azure.ai.ml import MLClient # Authentication package from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential()

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

      # Handle to the workspace # from azure.ai.ml import MLClient # Authentication package # from azure.identity import InteractiveBrowserCredential # credential = InteractiveBrowserCredential() 

      Затем получите дескриптор рабочей области, указав идентификатор подписки, имя группы ресурсов и имя рабочей области. Чтобы найти эти параметры, выполните указанные ниже действия.

      1. Найдите имя рабочей области в правом верхнем углу панели инструментов Студия машинного обучения Azure.
      2. Выберите имя рабочей области, чтобы отобразить идентификатор группы ресурсов и подписки.
      3. Скопируйте значения группы ресурсов и идентификатора подписки в код.
      # Get a handle to the workspace ml_client = MLClient( credential=credential, subscription_id="", resource_group_name="", workspace_name="", )

      Результатом выполнения этого скрипта является дескриптор рабочей области, который будет использоваться для управления другими ресурсами и заданиями.

      • Создание MLClient не приведет к подключению клиента к рабочей области. Инициализация клиента отложена и будет ожидать первого вызова. В этой статье это произойдет во время создания вычислительных ресурсов.

      Создание вычислительного ресурса для выполнения задания

      Машинному обучению Azure требуется вычислительный ресурс для выполнения задания. Этот ресурс может быть компьютером с одним или несколькими узлами с ОС Linux или Windows или конкретной вычислительной структурой, например Spark.

      В следующем примере скрипта мы подготавливаем Linux compute cluster . Вы можете просмотреть страницу Azure Machine Learning pricing с полным списком размеров виртуальных машин и цен. Так как для этого примера нам нужен кластер GPU, давайте выберем модель STANDARD_NC6 и создадим вычислительные ресурсы Машинного обучения Azure.

      from azure.ai.ml.entities import AmlCompute gpu_compute_target = "gpu-cluster" try: # let's see if the compute target already exists gpu_cluster = ml_client.compute.get(gpu_compute_target) print( f"You already have a cluster named , we'll reuse it as is." ) except Exception: print("Creating a new gpu compute target. ") # Let's create the Azure ML compute object with the intended parameters gpu_cluster = AmlCompute( # Name assigned to the compute cluster name="gpu-cluster", # Azure ML Compute is the on-demand VM service type="amlcompute", # VM Family size="STANDARD_NC6s_v3", # Minimum running nodes when there is no job running min_instances=0, # Nodes in cluster max_instances=4, # How many seconds will the node running after the job termination idle_time_before_scale_down=180, # Dedicated or LowPriority. The latter is cheaper but there is a chance of job termination tier="Dedicated", ) # Now, we pass the object to MLClient's create_or_update method gpu_cluster = ml_client.begin_create_or_update(gpu_cluster).result() print( f"AMLCompute with name is created, the compute size is " )

      Создание среды задания

      Чтобы запустить задание Машинного обучения Azure, вам потребуется среда. Среда Машинного обучения Azure инкапсулирует зависимости (такие как среда выполнения программного обеспечения и библиотеки), необходимые для запуска сценария обучения машинного обучения в вычислительном ресурсе. Эта среда аналогична среде Python на локальном компьютере.

      Машинное обучение Azure позволяет использовать курированную (или готовую) среду или создать настраиваемую среду с помощью образа Docker или конфигурации Conda. В этой статье описано, как создать настраиваемую среду Conda для заданий с помощью YAML-файла Conda.

      Создание пользовательской среды

      Чтобы создать настраиваемую среду, определите зависимости Conda в ФАЙЛЕ YAML. Сначала создайте каталог для хранения файла. В этом примере мы назвали каталог dependencies .

      import os dependencies_dir = "./dependencies" os.makedirs(dependencies_dir, exist_ok=True)

      Затем создайте файл в каталоге зависимостей. В этом примере мы назвали файл conda.yml .

      %%writefile /conda.yaml name: keras-env channels: - conda-forge dependencies: - python=3.8 - pip=21.2.4 - pip: - protobuf~=3.20 - numpy==1.22 - tensorflow-gpu==2.2.0 - keras

      Спецификация содержит некоторые обычные пакеты (например, numpy и pip), которые будут использоваться в задании.

      Затем используйте YAML-файл, чтобы создать и зарегистрировать эту настраиваемую среду в рабочей области. Среда будет упакована в контейнер Docker во время выполнения.

      from azure.ai.ml.entities import Environment custom_env_name = "keras-env" job_env = Environment( name=custom_env_name, description="Custom environment for keras image classification", conda_file=os.path.join(dependencies_dir, "conda.yaml"), image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest", ) job_env = ml_client.environments.create_or_update(job_env) print( f"Environment with name is registered to workspace, the environment version is " )

      Дополнительные сведения о создании и использовании сред см. в разделе Создание и использование программных сред в Машинном обучении Azure.

      Настройка и отправка задания обучения

      В этом разделе мы начнем с ознакомления с данными для обучения. Затем мы рассмотрим, как выполнить задание обучения с помощью предоставленного скрипта обучения. Вы научитесь создавать задание обучения, настроив команду для запуска скрипта обучения. Затем вы отправите задание обучения для запуска в Машинном обучении Azure.

      Получение данных для обучения

      Вы будете использовать данные из базы данных измененных национальных стандартов и технологий (MNIST) рукописных цифр. Эти данные по получению с веб-сайта Yan LeCun и хранятся в учетной записи хранения Azure.

      web_path = "wasbs://datasets@azuremlexamples.blob.core.windows.net/mnist/"

      Дополнительные сведения о наборе данных MNIST см. на веб-сайте Yan LeCun.

      Подготовка скрипта обучения

      В этой статье мы предоставили скрипт обучения keras_mnist.py. На практике вы сможете использовать любой пользовательский скрипт обучения как есть и запускать его с помощью Машинного обучения Azure без необходимости изменять код.

      Предоставленный скрипт обучения выполняет следующие действия:

      • обрабатывает предварительную обработку данных, разбивая данные на тестовые и обучающие;
      • обучает модель, используя данные; И
      • возвращает выходную модель.

      Во время выполнения конвейера вы будете использовать MLFlow для регистрации параметров и метрик. Сведения о том, как включить отслеживание MLFlow, см. в статье Отслеживание экспериментов и моделей машинного обучения с помощью MLflow.

      В сценарии keras_mnist.py обучения мы создадим простую глубокую нейронную сеть (DNN). Этот DNN имеет:

      • Входной слой с 28 * 28 = 784 нейронами. Каждый нейрон представляет пиксель изображения.
      • Два скрытых слоя. Первый скрытый слой имеет 300 нейронов, а второй скрытый слой имеет 100 нейронов.
      • Выходной слой с 10 нейронами. Каждый нейрон представляет целевую метку от 0 до 9.

      Схема, показывающая глубокую нейронную сеть с 784 нейронами на входном слое, двумя скрытыми слоями и 10 нейронами на выходном слое.

      Создание задания обучения

      Теперь, когда у вас есть все ресурсы, необходимые для выполнения задания, пришло время создать его с помощью пакета SDK Для Python для Машинного обучения Azure версии 2. В этом примере мы создадим command .

      Машинное обучение command Azure — это ресурс, который указывает все сведения, необходимые для выполнения кода обучения в облаке. Эти сведения включают входные и выходные данные, тип используемого оборудования, устанавливаемое программное обеспечение и способ выполнения кода. содержит command сведения для выполнения одной команды.

      Настройка команды

      Для запуска сценария обучения и выполнения нужных задач вы будете использовать универсальный command скрипт. Создайте объект , Command чтобы указать сведения о конфигурации задания обучения.

      from azure.ai.ml import command from azure.ai.ml import UserIdentityConfiguration from azure.ai.ml import Input web_path = "wasbs://datasets@azuremlexamples.blob.core.windows.net/mnist/" job = command( inputs=dict( data_folder=Input(type="uri_folder", path=web_path), batch_size=50, first_layer_neurons=300, second_layer_neurons=100, learning_rate=0.001, ), compute=gpu_compute_target, environment=f":", code="./src/", command="python keras_mnist.py --data-folder $> --batch-size $> --first-layer-neurons $> --second-layer-neurons $> --learning-rate $>", experiment_name="keras-dnn-image-classify", display_name="keras-classify-mnist-digit-images-with-dnn", )
      • Входные данные для этой команды включают расположение данных, размер пакета, количество нейронов на первом и втором уровнях, а также скорость обучения. Обратите внимание, что мы передали веб-путь непосредственно в качестве входных данных.
      • Для значений параметров:
        • укажите вычислительный кластер gpu_compute_target = "gpu-cluster" , созданный для выполнения этой команды;
        • укажите настраиваемую среду, созданную keras-env для выполнения задания Машинного обучения Azure;
        • настройте само действие командной строки— в данном случае команда имеет значение python keras_mnist.py . Вы можете получить доступ к входным и выходным данным в команде с помощью $> нотации;
        • настройка метаданных, таких как отображаемое имя и имя эксперимента; где эксперимент является контейнером для всех итераций, которые выполняется в определенном проекте. Все задания, отправленные с одинаковым именем эксперимента, будут перечислены рядом друг с другом в Студия машинного обучения Azure.

        отправить задание.

        Пришло время отправить задание для выполнения в Машинном обучении Azure. На этот раз вы будете использовать create_or_update в ml_client.jobs .

        ml_client.jobs.create_or_update(job)

        После завершения задание зарегистрирует модель в рабочей области (в результате обучения) и выведет ссылку для просмотра задания в Студия машинного обучения Azure.

        Машинное обучение Azure запускает сценарии обучения, копируя весь исходный каталог. Если у вас есть конфиденциальные данные, которые вы не хотите отправлять, используйте файл .ignore или не включайте их в исходный каталог.

        Что происходит во время выполнения задания

        При выполнении задания оно проходит следующие этапы:

        • Подготовка. Создается образ Docker в соответствии с определенной средой. Образ отправляется в реестр контейнеров рабочей области и кэшируется для последующего выполнения. Журналы также передаются в журнал заданий, и их можно просмотреть для отслеживания хода выполнения. Если указана курируемая среда, будет использоваться кэшированный образ, который поддерживается этой курируемой средой.
        • Масштабирование. Кластер пытается увеличить масштаб, если для выполнения выполнения требуется больше узлов, чем доступно в настоящее время.
        • Выполнение. Все скрипты в папке скриптов src отправляются в целевой объект вычислений, хранилища данных подключаются или копируются, а скрипт выполняется. Выходные данные из stdout и папки ./logs передаются в журнал заданий и могут использоваться для мониторинга задания.

        Настройка гиперпараметров модели

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

        Чтобы настроить гиперпараметров модели, определите пространство параметров, в котором будет выполняться поиск во время обучения. Это можно сделать, заменив некоторые параметры ( batch_size , , first_layer_neurons second_layer_neurons и learning_rate ), переданные заданию обучения, специальными входными данными azure.ml.sweep из пакета.

        from azure.ai.ml.sweep import Choice, LogUniform # we will reuse the command_job created before. we call it as a function so that we can apply inputs # we do not apply the 'iris_csv' input again -- we will just use what was already defined earlier job_for_sweep = job( batch_size=Choice(values=[25, 50, 100]), first_layer_neurons=Choice(values=[10, 50, 200, 300, 500]), second_layer_neurons=Choice(values=[10, 50, 200, 500]), learning_rate=LogUniform(min_value=-6, max_value=-1), )

        Затем вы настроите очистку в задании команды, используя некоторые параметры очистки, такие как основная метрика для watch и используемый алгоритм выборки.

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

        Мы также определяем политику досрочного BanditPolicy завершения — . Эта политика работает путем проверки задания каждые две итерации. Если основная метрика выходит validation_acc за пределы десятипроцентного диапазона, Машинное обучение Azure завершит задание. Это избавляет модель от дальнейшего изучения гиперпараметров, которые не обещают помочь достичь целевой метрики.

        from azure.ai.ml.sweep import BanditPolicy sweep_job = job_for_sweep.sweep( compute=gpu_compute_target, sampling_algorithm="random", primary_metric="Accuracy", goal="Maximize", max_total_trials=20, max_concurrent_trials=4, early_termination_policy=BanditPolicy(slack_factor=0.1, evaluation_interval=2), )

        Теперь вы можете отправить это задание, как раньше. На этот раз вы будете выполнять задание очистки, которое подметает задание обучения.

        returned_sweep_job = ml_client.create_or_update(sweep_job) # stream the output and wait until the job is finished ml_client.jobs.stream(returned_sweep_job.name) # refresh the latest status of the job after streaming returned_sweep_job = ml_client.jobs.get(name=returned_sweep_job.name)

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

        Поиск и регистрация лучшей модели

        После завершения всех запусков можно найти запуск, который создал модель с наивысшей точностью.

        from azure.ai.ml.entities import Model if returned_sweep_job.status == "Completed": # First let us get the run which gave us the best result best_run = returned_sweep_job.properties["best_child_run_id"] # lets get the model from this run model = Model( # the script stores the model as "keras_dnn_mnist_model" path="azureml://jobs/<>/outputs/artifacts/paths/keras_dnn_mnist_model/".format( best_run ), name="run-model-example", description="Model created from run.", type="mlflow_model", ) else: print( "Sweep job status: <>. Please wait until it completes".format( returned_sweep_job.status ) )

        Затем можно зарегистрировать эту модель.

        registered_model = ml_client.models.create_or_update(model=model)

        Развертывание модели в качестве подключенной конечной точки

        После регистрации модели ее можно развернуть в качестве сетевой конечной точки, то есть в качестве веб-службы в облаке Azure.

        Для развертывания службы машинного обучения обычно требуется:

        • Ресурсы модели, которые требуется развернуть. К этим ресурсам относятся файл модели и метаданные, которые вы уже зарегистрировали в задании обучения.
        • Некоторый код для запуска в качестве службы. Код выполняет модель в заданном входном запросе (входном скрипте). Этот начальный скрипт получает данные, отправленные в развернутую веб-службу, и передает их модели. После того как модель обработает данные, скрипт возвращает клиенту ответ модели. Скрипт предназначен для вашей модели и должен понимать данные, ожидаемые и возвращаемые моделью. При использовании модели MLFlow Машинное обучение Azure автоматически создает этот скрипт.

        Создание подключенной конечной точки

        В качестве первого шага к развертыванию модели необходимо создать конечную точку в сети. Имя конечной точки должно быть уникальным во всем регионе Azure. В этой статье вы создадите уникальное имя с помощью универсального уникального идентификатора (UUID).

        import uuid # Creating a unique name for the endpoint online_endpoint_name = "keras-dnn-endpoint-" + str(uuid.uuid4())[:8]
        from azure.ai.ml.entities import ( ManagedOnlineEndpoint, ManagedOnlineDeployment, Model, Environment, ) # create an online endpoint endpoint = ManagedOnlineEndpoint( name=online_endpoint_name, description="Classify handwritten digits using a deep neural network (DNN) using Keras", auth_mode="key", ) endpoint = ml_client.begin_create_or_update(endpoint).result() print(f"Endpint provisioning state: ")

        После создания конечной точки ее можно получить следующим образом:

        endpoint = ml_client.online_endpoints.get(name=online_endpoint_name) print( f'Endpint "" with provisioning state "" is retrieved' )

        Развертывание модели в конечной точке

        После создания конечной точки можно развернуть модель с помощью скрипта записи. Конечная точка может иметь несколько развертываний. Используя правила, конечная точка может направлять трафик в эти развертывания.

        В следующем коде вы создадите одно развертывание, которое обрабатывает 100 % входящего трафика. Мы указали произвольное имя цвета (tff-blue) для развертывания. Для развертывания можно также использовать любое другое имя, например tff-green или tff-red . Код для развертывания модели в конечной точке выполняет следующие действия:

        • развертывает наилучшую версию модели, зарегистрированную ранее;
        • оценивает модель с помощью score.py файла; и
        • использует пользовательскую среду (созданную ранее) для вывода.
        from azure.ai.ml.entities import ManagedOnlineDeployment, CodeConfiguration model = registered_model # create an online deployment. blue_deployment = ManagedOnlineDeployment( name="keras-blue-deployment", endpoint_name=online_endpoint_name, model=model, # code_configuration=CodeConfiguration(code="./src", scoring_script="score.py"), instance_type="Standard_DS3_v2", instance_count=1, ) blue_deployment = ml_client.begin_create_or_update(blue_deployment).result()

        Ожидается, что это развертывание займет немного времени.

        Тестирование развернутой модели

        Теперь, когда модель развернута в конечной точке, можно спрогнозировать выходные данные развернутой модели с помощью invoke метода в конечной точке.

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

        import urllib.request data_folder = os.path.join(os.getcwd(), "data") os.makedirs(data_folder, exist_ok=True) urllib.request.urlretrieve( "https://azureopendatastorage.blob.core.windows.net/mnist/t10k-images-idx3-ubyte.gz", filename=os.path.join(data_folder, "t10k-images-idx3-ubyte.gz"), ) urllib.request.urlretrieve( "https://azureopendatastorage.blob.core.windows.net/mnist/t10k-labels-idx1-ubyte.gz", filename=os.path.join(data_folder, "t10k-labels-idx1-ubyte.gz"), )

        Загрузите их в тестовый набор данных.

        from src.utils import load_data X_test = load_data(os.path.join(data_folder, "t10k-images-idx3-ubyte.gz"), False) y_test = load_data( os.path.join(data_folder, "t10k-labels-idx1-ubyte.gz"), True ).reshape(-1)

        Выберите 30 случайных выборок из тестового набора и запишите их в JSON-файл.

        import json import numpy as np # find 30 random samples from test set n = 30 sample_indices = np.random.permutation(X_test.shape[0])[0:n] test_samples = json.dumps() # test_samples = bytes(test_samples, encoding='utf8') with open("request.json", "w") as outfile: outfile.write(test_samples)

        Затем можно вызвать конечную точку, распечатать возвращенные прогнозы и отобразить их вместе с входными изображениями. Используйте красный цвет шрифта и инвертированное изображение (белое на черном), чтобы выделить неправильно классифицированные примеры.

        import matplotlib.pyplot as plt # predict using the deployed model result = ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, request_file="./request.json", deployment_name="keras-blue-deployment", ) # compare actual value vs. the predicted values: i = 0 plt.figure(figsize=(20, 1)) for s in sample_indices: plt.subplot(1, n, i + 1) plt.axhline("") plt.axvline("") # use different color for misclassified sample font_color = "red" if y_test[s] != result[i] else "black" clr_map = plt.cm.gray if y_test[s] != result[i] else plt.cm.Greys plt.text(x=10, y=-10, s=result[i], fontsize=18, color=font_color) plt.imshow(X_test[s].reshape(28, 28), cmap=clr_map) i = i + 1 plt.show()

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

        Очистка ресурсов

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

        ml_client.online_endpoints.begin_delete(name=online_endpoint_name)

        Ожидается, что эта очистка займет немного времени.

        Дальнейшие действия

        В этой статье вы обучили и зарегистрировали модель Keras. Вы также развернули модель в подключенной конечной точке. Подробные сведения о Машинном обучении Azure см. в следующих статьях.

        • Отслеживание метрик выполнения во время обучения
        • Настройка гиперпараметров
        • Эталонная архитектура для распределенного обучения с глубоким обучением в Azure

        Классифицировать объекты при помощи глубокого обучения (Image Analyst)

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

        Для этого инструмента требуется файл определения модели, содержащий обученную информацию о модели. Модели могут быть обучены с помощью инструмента Тренировать модель глубокого обучения или с помощью сторонних программных средств обучения, таких как TensorFlow, PyTorch или Keras. Файл определения модели может быть файлом JSON определения модели Esri ( .emd ) или пакетом модели глубокого обучения, и он должен содержать путь к растровой функции Python , вызываемой для обработки каждого объекта, и путь к обученному двоичному файлу модели глубокого обучения.

        Использование

        Анатомия растровой функции Python

        • Необходимо установить соответствующую среду глубокого обучения Python API (PyTorch или Keras) в среду ArcGIS Pro Python ; в противном случае при добавлении файла определения модели Esri в инструмент появится сообщение об ошибке. Соответствующую информацию о нужной среде должен предоставить автор файла определения модели Esri . Чтобы настроить компьютер на работу в среде глубокого обучения в ArcGIS Pro , см. раздел Установка сред глубокого обучения для ArcGIS.
        • Этот инструмент вызывает сторонний API для глубокого обучения Python (такой, как PyTorch или Keras) и использует указанную функцию растра Python для обработки каждого объекта.
        • Вы можете посмотреть примеры использования этого инструмента на странице GitHub Растровые функции Esri Python. Вы также можете написать пользовательские модули Python , следуя примерам и инструкциям.
        • Значением параметра Определение модели Esri может быть JSON файл определения модели Esri ( .emd ), строка JSON или пакет модели глубокого обучения ( .dlpk ). Строка JSON полезна при использовании инструмента на сервере, чтобы вы могли вставить необходимую строку JSON, вместо загрузки файла .emd . Файл .dlpk должен быть сохранен локально.
        • Следующий пример предназначен для файла .emd :

        Параметры

        Входной растр

        Входное изображение, которое будет использоваться для выявления объектов. Входными данными может быть единичный растр или несколько растров из набора данных мозаики, сервис изображений или папка с изображениями. Класс пространственных объектов с вложенными изображениями также поддерживается.

        Выходной класс классифицированных объектов

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

        Определение модели

        Значением параметра Определение модели Esri может быть JSON файл определения модели Esri ( .emd ), строка JSON или пакет модели глубокого обучения ( .dlpk ). Строка JSON полезна при использовании инструмента на сервере, чтобы вы могли вставить необходимую строку JSON, вместо загрузки файла .emd . Файл .dlpk должен быть сохранен локально.

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

        Входные объекты
        (Дополнительный)

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

        Если входной класс объектов не указан, считается, что каждое входное изображение содержит один объект для классификации. Если у входного изображения или изображений есть пространственная привязка, то на выходе этого инструмента будет получен класс пространственных объектов, в котором экстент каждого изображения используется в качестве ограничивающей геометрии для любого класса объектов с метками. Если входное изображение или изображения не имеют пространственной привязки, то на выходе инструмента будет получена таблица, содержащая значения ID изображений и метки классов для каждого изображения.

        Поле метки класса
        (Дополнительный)

        Имя поля, которое будет содержать метку класса или категории в выходном классе пространственных объектов.

        Если имя поля не указано, то в выходном классе объектов будет сгенерировано поле ClassLabel .

        Режим обработки
        (Дополнительный)

        Задает как будут обработаны все растровые элементы в наборе данных мозаики или сервисе изображений. Этот параметр применяется только в том случае, если в качестве входных данных используется наборы данных мозаики или сервис изображений.

        • Обработка как мозаики изображений — Все растровые элементы в наборе данных мозаики или сервисе изображений будут объединены в мозаику и обработаны. Это значение по умолчанию
        • Обработка всех растровых элементов отдельно — Все растровые элементы в наборе данных мозаики или сервисе изображений будут обработаны как отдельные изображения.

        Аргументы модели
        (Дополнительный)

        Аргументы функции, определенные в классе функции растра Python . Там перечисляются дополнительные параметры глубокого обучения и аргументы для экспериментов и улучшения, например, порог достоверности для настройки чувствительности. Названия аргументов заполняются из модуля Python .

        (Дополнительный)

        Имя поля, содержащего текст или заголовок в выходном классе объектов. Этот параметр поддерживается, только если используется модель Image Captioner.

        Если имя поля не указано, то в выходном классе объектов будет сгенерировано поле Caption .

        Примечание:

        Этот параметр не отображается на панели Геообработка . Чтобы изменить имя поля по умолчанию, используйте параметр Поле метки класса .

        ClassifyObjectsUsingDeepLearning(in_raster, out_feature_class, in_model_definition, , , , , )

        Входное изображение, которое будет использоваться для выявления объектов. Входными данными может быть единичный растр или несколько растров из набора данных мозаики, сервис изображений или папка с изображениями. Класс пространственных объектов с вложенными изображениями также поддерживается.

        out_feature_class

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

        in_model_definition

        Значением параметра in_model_definition может быть JSON файл определения модели Esri ( .emd ), строка JSON или пакет модели глубокого обучения ( .dlpk ). Строка JSON полезна при использовании инструмента на сервере, чтобы вы могли вставить необходимую строку JSON, вместо загрузки файла .emd . Файл .dlpk должен быть сохранен локально.

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

        in_features
        (Дополнительный)

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

        Если входной класс объектов не указан, считается, что каждое входное изображение содержит один объект для классификации. Если у входного изображения или изображений есть пространственная привязка, то на выходе этого инструмента будет получен класс пространственных объектов, в котором экстент каждого изображения используется в качестве ограничивающей геометрии для любого класса объектов с метками. Если входное изображение или изображения не имеют пространственной привязки, то на выходе инструмента будет получена таблица, содержащая значения ID изображений и метки классов для каждого изображения.

        class_label_field
        (Дополнительный)

        Имя поля, которое будет содержать метку класса или категории в выходном классе пространственных объектов.

        Если имя поля не указано, то в выходном классе объектов будет сгенерировано поле ClassLabel .

        processing_mode
        (Дополнительный)

        Задает как будут обработаны все растровые элементы в наборе данных мозаики или сервисе изображений. Этот параметр применяется только в том случае, если в качестве входных данных используется наборы данных мозаики или сервис изображений.

        • PROCESS_AS_MOSAICKED_IMAGE — Все растровые элементы в наборе данных мозаики или сервисе изображений будут объединены в мозаику и обработаны. Это значение по умолчанию
        • PROCESS_ITEMS_SEPARATELY — Все растровые элементы в наборе данных мозаики или сервисе изображений будут обработаны как отдельные изображения.

        model_arguments
        [model_arguments. ]
        (Дополнительный)

        Аргументы функции, определенные в классе функции растра Python . Там перечисляются дополнительные параметры глубокого обучения и аргументы для экспериментов и улучшения, например, порог достоверности для настройки чувствительности. Названия аргументов заполняются из модуля Python .

        caption_field
        (Дополнительный)

        Имя поля, содержащего текст или заголовок в выходном классе объектов. Этот параметр поддерживается, только если используется модель Image Captioner.

        Если имя поля не указано, то в выходном классе объектов будет сгенерировано поле Caption .

        Пример кода

        ClassifyObjectsUsingDeepLearning, пример 1 (окно Python)

        В этом примере создается новый класс объектов с полем меток для классификации поврежденных и неповрежденных домов на изображении.

        # Import system modules import arcpy from arcpy.ia import * # Check out the ArcGIS Image Analyst extension license arcpy.CheckOutExtension("ImageAnalyst") # Execute ClassifyObjectsUsingDeepLearning("C:/Data/Input_Image.tif", "C:/Data/MyProject.gdb/Classified_Results", "C:/Data/BuildingDamageClassifier.emd", "C:/Data/building_footprints.shp","Class_Label", "PROCESS_AS_MOSAICKED_IMAGE", "padding 0;batch_size 4")

        ClassifyObjectsUsingDeepLearning, пример 2 (автономный скрипт)

        В этом примере создается новый класс объектов с полем меток для классификации поврежденных и неповрежденных домов на изображении.

        # Import system modules import arcpy from arcpy.ia import * # Check out the ArcGIS Image Analyst extension license arcpy.CheckOutExtension("ImageAnalyst") # Define input parameters in_raster = "C:/Classify_Objects/input_image.tif" out_feature_class = "C:/Classify_Objects/MyProject.gdb/classified_results" in_model_definition = "C:/Classify_Objects/BuildingDanmageClassifier.emd" in_features = "C:/Classify_Objects/building_footprints.shp" class_label_field = "Damaged_or_Undamaged" model_arguments = "padding 0;batch_size 4" process_all_raster_items = "PROCESS_AS_MOSAICKED_IMAGE" # Execute ClassifyObjectsUsingDeepLearning(in_raster, out_feature_class, in_model_definition, in_features, class_label_field, process_all_raster_items, model_arguments)

        Параметры среды

        Информация о лицензиях

        • Basic: Обязательно Image Analyst
        • Standard: Обязательно Image Analyst
        • Advanced: Обязательно Image Analyst

        Keras

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

        Освойте профессию «Data Scientist»

        Keras с версии 2.3 — это надстройка над библиотекой TensorFlow, которая нужна для машинного обучения. TensorFlow выполняет все низкоуровневые вычисления и преобразования и служит своеобразным движком, математическим ядром. Keras же управляет моделями, по которым проходят вычисления.

        До версии 2.3 Keras мог использовать в качестве движка вычислительные библиотеки Theano или CNTK. Но в новых версиях поддержка прекратилась, теперь библиотека работает только с TensorFlow.

        Профессия / 8 месяцев
        IT-специалист с нуля

        Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

        vsrat_7 1 (1)

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

        Название читается как «Керас» и с греческого языка означает «рог». Это отсылка к строкам из «Одиссеи».

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

        Для чего нужен Keras

        • Удобное построение моделей, по которым будет проходить обучение.
        • Настройка слоев в моделях — обычно подбор нужного количества слоев требуется для точности.
        • Обработка ввода и вывода информации из модели.
        • Преобразование входных данных, которые поступают в обучаемую модель.
        • Удобный подбор датасетов для обучения.
        • Визуализация модели.
        • Подготовка модели к работе, определение ее функций ошибки и оптимизаторов.
        • Обучение и тестирование модели.
        • Сборка и первичный запуск программы машинного обучения.

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

        Читайте также Кто такой специалист по машинному обучению

        Что такое модель

        Keras работает с моделями — схемами, по которым распространяется и преобразуется информация. Машинное обучение — по сути, обработка информации с помощью запрограммированной сети, где на основе определенных данных делаются те или иные выводы. Структура сети называется моделью. Часто ее представляют в виде графа, схемы или таблицы.

        Как работает глубокое обучение

        Глубокое обучение — это метод машинного обучения, который позволяет предсказывать результат по набору входных данных — например, распознавать объекты. Обычно используются нейронные сети со множеством уровней.

        Нейронные сети

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

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

        Вот пример: при обучении нейронной сети, которая распознает изображения, показали 50 000 картинок, где присутствуют кошки, и указали, что на этих картинках есть кот. Также ей показали столько же картинок, где котов нет, и указали это. Обучение сработало как настройка, и программа накопила достаточно характеристик, чтобы распознавать котов уже на других картинках.

        Многослойность

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

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

        Чаще всего выходные данные — это вероятность, высчитанная нейронной сетью. Она показывает, насколько велик шанс того, что на картинке тот или иной объект.

        Станьте аналитиком данных и получите востребованную специальность

        Роль библиотек для машинного обучения

        Самостоятельные расчеты по такой модели невозможны, а создавать слои вручную — долгий процесс. В современных сетях могут использоваться десятки слоев и тысячи нейронов, и их будет сложно описать самостоятельно. Поэтому для работы с нейронными сетями и глубоким обучением применяют различные инструменты, позволяющие делать это в несколько строчек. Один из таких инструментов — Keras, который быстро создает, визуализирует и запускает сети с заданными параметрами.

        Например, вместо того чтобы вручную описывать свойства каждого нейрона, а потом создавать сотню таких элементов в цикле и повторять это для каждого слоя, можно один раз написать инициализацию в Keras. Это несколько строк, которые описывают свойства целевой модели: ее глубину, плотность, механику расчетов и другие параметры. После этого модель можно обучать и собирать.

        Читайте также Как написать свою первую нейросеть на Python

        Как работать с глубоким обучением в Keras

        Создание модели

        Описать модель можно двумя способами:

        • последовательно — написать несколько команд, каждая из которых добавляет к модели новый параметр. Например, сначала описывается плотность, потом формула для расчетов, потом другие характеристики;
        • с помощью функционального API — создать объект и присвоить ему характеристики, описанные и рассчитанные заранее с помощью других функций.

        Оба метода довольно удобны, и выбор зависит только от предпочтений программиста.

        Обучение

        После создания модели ее обучают: подают на вход датасет (набор данных) для обучения. Обычно это два пакета: в одном — подготовленные данные, в другом — метка, то есть «подпись» к данным. Она указывает, что именно представляет собой информация.

        Чтобы модель качественно обучилась, нужны большие датасеты — десятки и сотни тысяч примеров, каждому из которых соответствует метка. Создать и подготовить датасет тоже можно с помощью Keras.

        Обучение проходит в автоматизированном режиме и может занять много времени. В результате получится обученная модель: сеть «запомнит» ключевые признаки объекта для распознавания. Это сложная система: нейронам присваиваются те или иные коэффициенты в зависимости от того, что именно поступило на вход. Потом коэффициентам определяется вероятность.

        Тестирование и запуск

        Тестирование — это запуск модели, уже обученной на тестовой выборке. Так называется датасет, в котором данные не повторяют те, что были при обучении. Например, это совершенно другие картинки, на которых тоже присутствуют или отсутствуют кошки. Разработчики смотрят, какие вероятности нейронная сеть указала для тестовых данных, и по результату определяют точность ее работы.

        Особенности Keras

        • Написана на чистом Python, чтобы код был понятнее и легче поддерживался.
        • Работает на большинстве существующих платформ: не только в ОС Windows и Linux, но и на микрокомпьютерах, мобильных устройствах, в облаке или в браузере.
        • Поддерживает работу с CPU и GPU — с обычным или графическим процессором. Последний часто используют для сложных вычислений, когда CPU не справляется.
        • Поддерживает разные виды нейронных сетей: классические перцептроны, сверточные и рекуррентные сети, их комбинации.
        • Совместима с Python начиная с версии 2.7 вплоть до современных.

        Преимущества Keras

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

        Гибкая работа с бэкендом

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

        Удобство

        С Keras удобно работать: она серьезно упрощает создание и настройку моделей. Ее функции и инструменты имеют понятные названия, поэтому код легко читается — по взгляду на него разработчик может понять, что он делает, даже если не слишком хорошо знаком с Keras. Библиотека устроена таким образом, что для решения частых задач нужно выполнить минимальное количество действий — это снимает с разработчика лишнюю нагрузку.

        Модульность

        Keras состоит из модулей, своеобразных «блоков», у каждого из которых своя функциональность. Эти модули — типовые слои нейронных сетей, функции и схемы. Они представлены в виде уже готовых «элементов», и разработчик собирает из них модель, как в конструкторе. Все, что ему остается, — выбрать модули, назначить им настройки и связать друг с другом. Keras допускает гибкие конфигурации модулей, вариантов построения сетей очень много.

        Расширяемость

        Функциональность самой библиотеки можно расширять с помощью пользовательских модулей. Если вам понадобится собственный «блок», его легко можно написать самостоятельно и связать с остальными. Keras дает разработчикам такую возможность.

        У библиотеки открытый исходный код, поэтому ее можно модифицировать под собственные задачи. Но на практике уже существующие исходники трогают редко; чаще дописывают что-то свое.

        Высокая скорость работы

        Мы уже частично упомянули это преимущество, когда говорили про упрощение задач. Скорость обеспечивается благодаря двум моментам:

        • работать с нейронными сетями становится проще, поэтому разработчик быстрее создает функционирующую модель, обучает и запускает ее. Ему не приходится тратить лишнее время на типовые действия, потому что они сводятся к нескольким строкам кода;
        • библиотека быстро развертывает и собирает модели. У ранних версий Keras были проблемы с быстродействием при использовании TensorFlow в качестве движка, но специалисты Google исправили их.

        Популярность

        У Keras обширное сообщество, это популярная и известная библиотека. Это значит, что у новичка всегда есть возможность пообщаться с единомышленниками, получить от них совет, проконсультироваться на тематическом ресурсе. Мануалов по Keras тоже много, а его документацию энтузиасты перевели на русский язык.

        Недостатки Keras

        Неуниверсальность

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

        Отсутствие обратной совместимости

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

        Зависимость от движка

        Keras сейчас — это высокоуровневая настройка для TensorFlow. Ее нельзя использовать без движка, в роли которого выступает TensorFlow. Самостоятельно библиотека не сможет провести расчеты — для этого понадобится бэкенд, без которого Keras бесполезна.

        Сложность обучения

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

        Как начать работу с Keras

        Основная библиотека

        Саму библиотеку можно скачать с помощью одной команды в консоли:

        · pip install keras

        На компьютере должен быть установлен Python актуальной версии и TensorFlow — бэкенд, без которого Keras не будет работать. Скачать TensorFlow можно на официальном сайте или также с помощью pip.

        Для корректной работы TensorFlow понадобятся еще две библиотеки. Это NumPy и SciPy. Они нужны для математических вычислений.

        Дополнительные компоненты

        Чтобы некоторые возможности Keras работали как надо, нужны дополнительные компоненты. Это другие библиотеки, на которых Keras опирается в работе:

        • cuDNN — библиотека от NVIDIA, которая позволяет использовать для расчетов графический процессор. Обычно он отвечает за расчет сложной графики, поэтому лучше подходит для ресурсоемких вычислений машинного обучения;
        • Graphviz и Pydot — инструменты, которые нужны для визуализации графов и таблиц. Ими пользуются модули Keras, отвечающие за визуальное отображение моделей. Graphviz — библиотека, Pydot — интерфейс для нее;
        • HDF5 и h5py — форматы файлов и соответствующие им библиотеки. В этих форматах хранятся модели. С их помощью Keras сохраняет созданные и настроенные модели.

        После установки всех компонентов можно начинать работу с собственными проектами.

        Data Scientist

        Дата-сайентисты решают поистине амбициозные задачи. Научитесь создавать искусственный интеллект, обучать нейронные сети, менять мир и при этом хорошо зарабатывать. Программа рассчитана на новичков и плавно введет вас в Data Science.

        картинка (74)

        Статьи по теме:

        Делимся подборкой IT-профессий для креативщиков и математиков, а также лайфхаками, как выбрать подходящую именно вам

        Модули Keras: типы и примеры / keras 7

        Модули Keras предоставляют различные классы и алгоритмы глубокого обучения. Дальше о них и пойдет речь.

        Модули Keras

        В Keras представлены следующие модули:

        • Бэкенд
        • Утилиты
        • Обработка изображений
        • Последовательная последовательности
        • Обработка текста
        • Обратный вызов

        Модуль бэкенда в Keras

        Keras — это высокоуровневый API, который не заостряет внимание на вычислениях на бэкенде. Однако он позволяет пользователям изучать свой бэкенд и делать изменения на этом уровне. Для этого есть специальный модуль.

        Его конфигурация по умолчанию хранится в файле $Home/keras/keras.json .

        Он выглядит вот так:

         "image_data_format": "channels_last", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" > 

        Можно дописать код, совместимый с этим бэкендом.

        from Keras import backend as K b=K.random_uniform_variable(shape=(3,4),low=0,high=1) c=K.random_uniform_variable(shape=(3,4),mean=0,scale=1) d=K.random_uniform_variable(shape=(3,4),mean=0,scale=1) a=b + c * K.abs(d) c=K.dot(a,K.transpose(b)) a=K.sum(b,axis=1) a=K.softmax(b) a=K.concatenate([b,c],axis=1) 

        Модуль утилит в Keras

        Этот модуль предоставляет утилиты для операций глубокого обучения. Вот некоторые из них.

        HDF5Matrix

        Для преобразования входящих данных в формат HDF5.

        from.utils import HDF5Matrix data=HDF5Matrix('data.hdf5','data') 

        to_categorical

        Для унитарной кодировки (one hot encoding) векторов класса.

        from keras.utils import to_categorical labels = [0,1,2,3,4,5] to_categorical(labels) 

        print_summary

        Для вывода сводки по модели.

        from keras.utils import print_summary print_summary(model) 

        Модуль обработки изображений в Keras

        Содержит методы для конвертации изображений в массивы NumPy. Также есть функции для представления данных.

        Класс ImageDataGenerator

        Используется для дополнения данных в реальном времени.

        keras.preprocessing.image.ImageDataGenerator(featurewise_center, samplewise_center, featurewise_std_normalization, samplewise_std_normalization, zca_whitening, zca_epsilon=1e-06, rotation_range=0, width_shift_range=0.0, height_shift_range=0.0, brightness_range, shear_range=0.0, zoom_range=0.0, channel_shift_range=0.0, fill_mode='nearest', cval=0.0, horizontal_flip, vertical_flip) 

        Методы ImageDataGenerator

        apply_transform:

        Для применения изменений к изображению

        apply_transform(x, transform_parameters) 

        flow

        Для генерации серий дополнительных данных.

        flow(x, y, batch_size=32, shuffle, sample_weight, seed, save_to_dir, save_prefix='', save_format='png', subset) 

        standardize

        Для нормализации входящего пакета.

        standardize(x) 

        Модуль обработки последовательности

        Методы для генерации основанных на времени данных из ввода. Также есть функции для представления данных.

        TimeseriesGenerator

        Для генерации временных данных.

        keras.preprocessing.sequence.TimeseriesGenerator(data, targets, length, sampling_rate, stride, start_index, end_index) 

        skipgrams

        Конвертирует последовательность слов в кортежи слов.

        keras.preprocessing.sequence.skipgrams(sequence, vocabulary_size, window_size=4, negative_samples=1.0, shuffle, categorical, sampling_table, seed) 

        Модуль предварительной обработки текста

        Методы для конвертации текста в массивы NumPy. Есть также методы для подготовки данных.

        Tokenizer

        Используется для конвертации основного текста в векторы.

        keras.preprocessing.text.Tokenizer(num_words, filters='!"#$%&()*+,-./:;?@[\\]^_`<|>~\t\n', lower, split=' ', char_level, oov_token=, document_count=0) 

        one_hot

        Для кодировки текста в список слов.

        keras.preprocessing.text.one_hot(text, n, filters='!"#$%&()*+,-./:;?@[\\]^_`<|>~\t\n', lower, split=' ') 

        text_to_word_sequence

        Для конвертации текста в последовательность слов.

        keras.preprocessing.text.text_to_word_sequence(text, filters='!"#$%&()*+,-./:;?@[\\]^_`<|>~\t\n', lower, split=' ') 

        Модуль обратного вызова

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

        Callback

        Для создания новых обратных вызовов.

        keras.callbacks.callbacks.Callback() 

        BaseLogger

        Для вычисления среднего значения метрик.

        keras.callbacks.callbacks.BaseLogger(stateful_metrics) 

        History

        Для записи событий.

        keras.callbacks.callbacks.History() 

        ModelCheckpoint

        Для сохранения модели после каждого временного промежутка.

        keras.callbacks.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only, save_weights_only, mode='auto', period=1) 

        Выводы

        Теперь вы знакомы с разными модулями Keras и знаете, для чего они нужны.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *