Практическое руководство по глубокому обучению в Python Web: часть 4
Практическое руководство по глубокому обучению в Python Web: часть 4

Нет. 4 Раздел: Глубокое обучение в производстве (Интеллектуальное Web приложение)

В этом разделе представлены различные тематические исследования, показывающие, как разрабатывать и развертывать веб-приложения глубокого обучения (с использованием API глубокого обучения), а также демонстрируются меры по обеспечению безопасности веб-приложений с помощью глубокого обучения.

В этот раздел входят следующие главы:

  • “Нет. 9 Глава", "Включить глубокое обучениеиз Веб-сайт «Universal Production Framework»
  • “Нет. 10 глава",“проходитьглубокое обучение保护 Web Безопасность приложений»
  • “Нет. 11 чжан", "Сделай сам – Web DL производственная среда»
  • “Нет. 12 глава",“использовать DL API Чат поддержки клиентовроботсоздавать E2E Web приложение"

9. Универсальная производственная среда для веб-сайтов с поддержкой глубокого обучения.

существоватьфронт изглава节середина,Мы уже существуемиспользовать Облако отраслевого уровняглубокое обучениеDL)API Были заложены основы из аспектов, и они изучались на практических примерах изиспользовать. существует Эта глава середина, мы Воля вводим поддержку развития DL Общий обзор сайта. Эта Воля требует от нас Воляприезжать в настоящее время, чтобы собрать воедино все полученные нами знания, приезжатьизсуществовать, чтобы мы могли Воля использовать ее в практических случаях использования середина. В этой главе середина мы, Воля, узнаем, как сначала подготовить набор данных для создания продукции из В. DL Web приложение. Тогда мы Воляиспользовать Python тренироваться DL модель,а затем использовать Flask Воля DL Модель Упаковкасуществовать API середина.

Вот краткий обзор этой главы:

  • Определите нас из Постановка проблемы
  • Вопрос Воля разделен на несколько частей для
  • Учреждать мышление Модель для связывания компонентов проекта
  • Как мы должны собирать данные
  • Следуйте нашей структуре каталогов проектов
  • отHeader начинает сборку проекта

Технические требования

ты можешьпроходитьздесьдоступ本главасерединаиспользоватьизкод。

Чтобы запустить код серединаиспользовать эту главу, вам Воля понадобится следующее программное обеспечение:

  • Python 3.6+
  • Библиотека Python PIL
  • NumPy
  • Pandas
  • Набор инструментов для естественного языкаNLTK
  • Flask 1.1.0+ Следующие версии несовместимы:
    • FlaskForm
    • wtforms
    • flask_restful
    • flask_jsonpify

В этой главе Воля описаны все остальные установки.

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

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

Например, существует база В DL из Web-проектсередина, описание проблемы Воля позволяет понять следующее:

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

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

Представьте себе, что компания точно существуетиз DL Инженер, компания «Должен» планирует Учреддать систему рекомендаций в соответствии Пользователи предоставляют стандартные продукты из списка рекомендованных продуктов. тыиз Босс требует, чтобы ты был геем ВЭто развитиедоказательство концепцииPoC)。 Итак, что нам делать? Как упоминалось ранее, давайте сначала Определим постановку проблемы。

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

«Учитывая набор входных данных (пользовательских предпочтений), мы ставим задачу предложить список продуктов».

Теперь у нас есть четко определенная постановка задачи.,Продолжить далее,исуществовать Следующий разделсередина Учреждать Следовать зашаг。

Постройте мысленную модель проекта.

Глядя на постановку задачи, вы можете открыть браузер и начать поиск в некоторых наборах данных. Но да, чтобы правильно разработать проект, сразу требуется четкое планирование построения проекта шаг за шагом. Без структуры изпроект — не более чем корабль без руля. Поэтому мы Воляот изначально сразу сразу такой осторожный. Наше обсуждение Воли Волясуществовать наш изпроектсередина играет очень важную роль как модуль. Это также включает в себя некоторые умственные соображения. Мне нравится Воля. Этот этап называется «Для Постройки». мысленную модель проекта.。

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

Мы занимаемся проектированием соответствии с Пользовательские настройки рекомендуют продукты пользователям. Поэтому для реализации этого предложения нам нужен тот, кто умеет понять пользователя, для которого он предлагает набор предпочтений и зсистему. для Чтобы иметь возможность понимать эти предпочтения, системе Воля нужна какая-то наша Воля для выбора DL изтренироваться。 Но как насчет предпочтений? Как они выглядят? Существование требует человеческого вмешательства. В реальных ситуациях проекта в реальном мире вы часто сталкиваетесь с этими проблемами.

сейчассуществовать,Пожалуйста, подумайте дважды, прежде чем действовать,и尝试思考существовать Выберите, чтобы купитьизпродуктобычно ищуизаспект。 Давайте существовать здесь и перечислим их:

  • Каковы характеристики продукта? Если я хочу носить одежду большого размера T рубашку, не рекомендуется носить маленький размер. T рубашка.
  • Сколько стоит продукт? Средства пользователей ограничены. Действительно ли эта рекомендация полезна для их кошелька?
  • Какой марки этот продукт? Пользователи часто отдают предпочтение брендам аналогичных продуктов, производимых несколькими компаниями.

Обратите внимание, что предыдущие указатели из не расположены в каком-либо определенном порядке.

поэтому,от Предыдущий раздел начинается,Мы начинаем понимать, что нам нужно,Это интерфейс (существовать из нашего кейса,По сути даа веб-страница),чтобы пользователи могли указать свои предпочтения。 принимая во внимание Учитывая эти предпочтения, наша система Воля прогнозирует набор наиболее подходящих товаров. Это DL Частично вступает в игру место. Поскольку мы Волясуществовать из главы середина обзора, используйте DL Модель способна справиться с данной проблемой, сразу же требуется некоторое представление проблемы, и зданные выполняются как можно более строго и зтренироваться. Теперь обсудим изданные части системы.

У нас есть легкий набор Виспользоватьизданные, Долженданные набор да Зависит. от Amazon предоставлено Stanford Network Analysis Project создать команду Amazon Fine Food Reviews набор данных. хотя набор огромен, но существование этой главы серединасоздавать является демонстрационным, мы не будем использовать изнабор данных. Здесь может возникнуть прямой вопрос: Как выглядит набор даданных? Нам нужно составить приблизительный план, чтобы решить следующее:

  • Какие функции мы, Воля, выбираем для построения набора данных
  • Где мы Волясуществовать собираем данные

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

«Учитывая набор входных данных (пользовательских предпочтений), мы ставим задачу предложить список продуктов».

Если вы рекомендуете некачественную продукцию,Поэтому пользователь Воля нам не понравится изсистема.,В нашу постановку задачи Воляверно внесены некоторые изменения.,Как показано ниже:

«Учитывая набор входных характеристик (пользовательских предпочтений), мы ставим перед собой задачу рекомендовать список лучших продуктов, которые можно приобрести».

для Let's System Needle верно приведен из стандартного рекомендуемого списка лучших продуктов,Для начала необходимо узнать средний сорт продукта. Помимо среднего рейтинга,Очень полезно получить следующую информацию о конкретном товаре (кроме названия):

  • Технические индикаторы
  • Категории продуктов
  • Имя продавца
  • средняя цена
  • Расчетное время доставки

существуют При подготовке данных мы ищем предыдущие инструкции по конкретному продукту. Сейчас существует данаша Воляот вопрос где собирать данные. Ответ — Амазонка! Amazon известен своей существующей индустрией электронной коммерции, предоставляющей нам различные продукты и информацию о них, такую ​​​​как их класс, характеристики продуктов, цены на товары и т. д. Но, пожалуйста, скажите, что Amazon не позволяет вам напрямую загружать эти данные для загрузки сжатых файлов. Чтобы получить данные в желаемой форме от Amazon, нам, Воле, пришлось полагаться на парсинг веб-страниц.

существование Обсуждение из На данный момент можно выделить два основных направления Долженпроектиз:

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

для DL Моделирование мы начнем с простой, полностью связанной архитектуры на основе нейронных сетей. от Простой из Модель Начинать с возрастающей сложности часто бывает полезно, потому что это упрощает отладку кода Библиотеки.

поэтому,Можно сказать с уверенностью,Следующие три модуля Волясуществовать Долженпроектсередина играют важную роль:

  • интерфейс
  • данные
  • DL Модель

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

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

Узнать больше о машинное СИСТЕМА обучения середина РАЗНЫЕ ТИПЫ BIAS из БОЛЬШЕ ИНФОРМАЦИИ,Рекомендуется обратиться кТип отклонения。 Существует наш случай середина, удивительный пример предвзятости: посетители-мужчины получают средние рекомендации по рекомендациям по продуктам в зависимости от ситуации. Эти рекомендации могут основываться исключительно на их поле, а не на каких-либо других особенностях просмотра посетителей. Это может быть неправильно и может быть сделано неправильно. Но такой пример сделал бы нас из Модели очень неуместными. существовать Следующий разделсередина,Мы с Волей обсуждаем некоторые моменты,Научиться избегать отклонений в данных.

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

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

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

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

Предположим, вы получаете данные о продукте с Amazon. США существует в торговой точке.,И окончательная индийская версия существует — поиск товара на Amazon. Скребок может быть предоставлен из индийских магазинов изданные.,Не рекомендуется для жителей США.

также,Зависит от ВАмазон и подобные из Служить (например. Flipkart)利использовать推荐системадляихиз Позиционирование клиента является наиболее подходящимизпродукт,Поэтому существующие период сбора,Краулеры не должны становиться жертвами таких советов. Важно отметить, что сканер должен время от времени очищать контекст и избегать Зависит. от ВАмазонкавыполнитьиз AI И порождать предрассудки.

Начнем с Amazon Fine Food Reviews данныенабордляпример。 хотя на первый взгляд набор данных выглядит сбалансированным, но мы можем обнаружить, что набор данных середина запаса существует и имеет множество отклонений. Длина текста написана с учетом отзывов покупателей о товаре. Давайте в соответствии Они из таблицы очков существуют середина, рисуют их. На изображении ниже показан уровень для 1 и 2 звездазпродуктизкартина:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-hTTaiBTi-1681705163539)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/29b500df-2cd7-4404-b9da-a9cbc49b7fe0.png)]

На изображении ниже показан рейтинг для 3 звезда 4 звездазпродуктизкартина:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-KNtyGh3J-1681705163540)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/8325444b-269a-4dca-9f6d-b1cb9cb77b8a.png)]

На изображении ниже показан рейтинг для 5 звездазпродуктизкартина:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-g6iAdt6P-1681705163540)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/4b4555fa-698d-4e04-bf56-b8a2ba2c4cb1.png)]

Обратите внимание, что все больше и больше положительных отзывов об изсередине имеют больше письменного текста. Эта Воля напрямую преобразует стандартные наборы серединаиз большинства слов, благодаря чему пользователи получают более высокий рейтинг. Теперь рассмотрим ситуацию, когда пользователь пишет длинный отзыв с низкими оценками и в целом отрицательным мнением о верно Долженном продукте. Зависит от Внасиз Модельпройтитренироваться,Может ли Воля ассоциироваться с более длинными отзывами и положительными отзывами?,поэтомувстреча Воля Флаг отрицательного отзывадляпередний。

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

Как не создавать серверную часть с искусственным интеллектом

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

Хотянас Воляобсуждениезадняя часть Пусть вас не смущают узкие места из «Советы и подсказки», но существуют для разработки веб-сайтов. AI наборстановитьсязадняя часть нам нужно придумать несколько указателей, которых лучше избегать из 。

Ожидайте, что AI-часть вашего веб-сайта будет работать в режиме реального времени.

Искусственный интеллект существует с точки зрения вычислительных затрат из-за,Излишне говорить,этотдляцельсуществоватьс самым быстрымизвремядляее клиенты предоставляют Служитьиз Для сайтада Не рекомендуетсяиз。 Хотяменьшеиз Модельилииспользовать Браузер ИИ (напр. TensorFlow.js или другие библиотеки) могут обеспечить в режиме реального времени AI Отзывчивы на основе опыта, но даже они сталкиваются с необходимостью проживания клиента в медленной сети или использования недорогих устройств из-за проблем. Поэтому в браузере AI модель или облегченный AI Модель почти мгновенного ответа. Оба метода зависят от конфигурации устройства и пропускной способности сети. Поэтому в идеале клиент должен быстро реагировать сзади сайта. частьотвечать Долженииметь дело с AI Модель отвечает частично разделенной. Оба работают параллельно и должны поддерживать общее изданное хранилище и правильный метод взаимодействия между ними, чтобы клиент отвечал за ответные действия. частькодверно AI Модель частичной зависимости приведена.

Предполагая, что данные, поступающие с веб-сайта, идеальны.

Даже если «Долженпроект» будет верным на веб-сайте или в приложении, это может произойти. на: Идеальный метод сбора изданных, но не следует полагать, что сайт Должен или приложение изданные безошибочны. Ошибка сетевого запроса, вредоносное соединение или только Зависит от пользователей, предоставляющих спам-ввод, могут сделать данные непригодными для обучения. Незлонамеренные пользователи могут столкнуться с проблемами в сети и постоянно обновлять одну и ту же страницу в течение короткого времени. 10 приезжать 20 В то же время это не должно повышать значимость просмотра страницы Должен. из коллекции веб-сайта, все данные должны быть в соответствии с Моделиз требует очистки и фильтрации. Важно помнить, что проблемы, с которыми сталкивается веб-сайт, почти наверняка повлияют на качество собираемого контента.

Примеры веб-приложений, интегрирующих сквозной искусственный интеллект

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

как упоминалось выше,Знакомство с нами Волянижешаг:

  • в соответствии спостановка задачиполучатьнаборданные
  • Очистка и предварительная обработка
  • Создайте модель ИИ
  • Создайтеинтерфейс
  • существоватьинтерфейсначальствоиспользовать AI Модель

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

Сбор и очистка данных

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

  • существоватьприложение/веб-сайтбегатьдинамически генерируетсяданные
  • отприложениеили Вход на смарт-устройстве
  • использовать системные формы (например, викторины или опросы), полученные непосредственно от данных пользователей
  • от Агентства Расследований Коллекционные
  • использовать конкретный метод (научные данные) и другие методы, измеряемые на основе данных наблюдений

beautifulsoupда Обычно используется Восуществлять Web Возьмите из библиотеки. Scrapyдаеще один популярныйизинструмент,Можно использовать очень быстро.

Очистка данных Воля полностью зависит от того, В какой форме вы собираете изданные формы и существование которых обсуждалось в предыдущих главах этой книги середина. Мы в «Воля» предполагаем, что вы можете конвертировать «Воляданные» в формат для, который подходит для той части, которую вы хотите построить. для этого раздела серединаиз других тем мы Воляиспользовать имя для Amazon Fine Food Reviews изприготовьсяизданныенабор,Можетотздесьскачать。извлекатьскачатьиз ZIP После файла,ты Воляполучить имядляReviews.csvизнабор данных.

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

Создайте модель ИИ

сейчассуществовать,Мы, Воля, готовим AI Модель,Должен Модель Воляв соответствии с Пользователь запрашивает рекомендуемые продукты. дляэтот,нас Создайтеновыйиз Jupyter блокнот.

Сделайте необходимый импорт

первый,Волянеобходимыйиз Python Проект импорта модуля:

Язык кода:javascript
копировать
import numpy as np
import pandas as pd
import nltk
from nltk.corpus import stopwords 
from nltk.tokenize import WordPunctTokenizer
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer

# Comment below line if you already have stopwords installed
nltk.download('stopwords')

насимпортироватьTfidfVectorizerк帮助нассоздаватьиспользовать Восуществлятьобработка естественного языкаизЧастота слов, обратная частоте документовTF-IDF)вектор。 TF-IDF Числовая мера важности одного слова «документ», учитывая, что несколько документов могут содержать или не содержать слово «из». существуют в числовом виде, когда одно слово существует, один документсередина появляется часто, но существующий другой документсередина появляется не часто, это увеличивает значение важности. TF-IDF Настолько популярны, что в настоящее время существует более 80% из основанного на естественном языке из системы рекомендаций – все это существуетиспользовать.

настакже正существоватьимпортироватьWordPunctTokenizer。 Токенизатор выполняет декомпозицию текста Воли для базовой разметки из функций. Например,Большой абзац можно разбить на предложения.,Затем далее разложите слово для.

Прочтите набор данных и подготовьте функцию очистки.

нас Воля ПрочтитеISO-8859-1кодированиеиз Amazon Fine Food Reviews набор данных. Это лишь гарантирует, что мы не потеряем специальные символы в тексте комментария:

Язык кода:javascript
копировать
df = pd.read_csv('Reviews.csv', encoding = "ISO-8859-1")
df = df.head(10000)

Зависит от Вданный набор очень велик, поэтому мы воля в этой главе работать лимит для набора данных серединаиз назад 10,000 ХОРОШО.

Нам Воля нужно из текста середина убрать стоп-слова и отфильтровать скобки серединаиз символов и другой текст неестественный из символов. Мы Воля СоздаемимядляcleanText()изфункция,Функция Должен Воля выполняет фильтрацию и удаление стоп-слов:

Язык кода:javascript
копировать
import string
import re

stopwordSet = set(stopwords.words("english"))

def cleanText(line):
    global stopwordSet

    line = line.translate(string.punctuation)
    line = line.lower().split()

    line = [word for word in line if not word in stopwordSet and len(word) >= 3]
    line = " ".join(line)

    return re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", line) 

Используя предыдущую функцию, мы из текста середина удалили стоп-слова и все слова, содержащие менее трех символов в словах. Мы отфильтровали знаки препинания и сохранили только символы, относящиеся к тексту серединаиз.

Извлеките необходимые данные

Набор данных содержит больше данных, чем нам нужно для демо-версии. нас ВоляизвлекатьProductId,UserId,ScoreиText列к Подготовитьнасиз Демо。 Названия продуктов шифруются по соображениям конфиденциальности, так же, как шифруются имена пользователей:

Язык кода:javascript
копировать
data = df[['ProductId', 'UserId', 'Score', 'Text']]

существуют данные научной серии, хранить данные в зашифрованном виде и не содержать личной информации - проблема. отданныеSET середина Важно удалить часть, чтобы можно было идентифицировать частный объект dataSETсерединаиз. Например, вам Воля нужно из текста комментария середина удалить имя человека и организации, чтобы не идентифицировать продукты и пользователей, хотя у них есть шифрование и з продуктов и пользователей. ID。

Применить очистку текста

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

Язык кода:javascript
копировать
%%time
data['Text'] = data['Text'].apply(cleanText)

Отображает время, необходимое для выполнения задачи.

пожалуйста, обрати внимание,фронт изкод块толькосуществовать Jupyter Блокнот середина действителен и существует регулярно Python Недопустимо в сценарии. хотетьсуществоватьобычноиз Python по сценариюбегатьэто,пожалуйстаудалить%%timeЗаказ。

Разделите набор данных на части обучения и тестирования.

Зависит от ВУ нас есть только один эпизод данных,поэтомунас Волячастьдлядве части,Разделы характеристик и тегов разделены:

Язык кода:javascript
копировать
X_train, X_valid, y_train, y_valid = train_test_split(data['Text'], df['ProductId'], test_size = 0.2) 

нас Воляиспользоватьsklearnмодульсерединаизtrain_test_split()метод Воляданныенабор分для 80% использовать Втренироватьсяи 20% для тестирования.

Обобщить текст о продуктах и ​​пользователях

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

Язык кода:javascript
копировать
user_df = data[['UserId','Text']]
product_df = data[['ProductId', 'Text']]
user_df = user_df.groupby('UserId').agg({'Text': ' '.join})
product_df = product_df.groupby('ProductId').agg({'Text': ' '.join})

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

Создание векторизаторов TF-IDF для пользователей и продуктов.

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

Язык кода:javascript
копировать
user_vectorizer = TfidfVectorizer(tokenizer = WordPunctTokenizer().tokenize, max_features=1000)
user_vectors = user_vectorizer.fit_transform(user_df['Text'])
user_vectors.shape

Затем,нас Волядляпродуктсоздаватьвекторизатор:

Язык кода:javascript
копировать
product_vectorizer = TfidfVectorizer(tokenizer = WordPunctTokenizer().tokenize, max_features=1000)
product_vectors = product_vectorizer.fit_transform(product_df['Text'])
product_vectors.shape

насиспользоватьWordPunctTokenizerРазбить текст,ииспользоватьTfidfVectorizerвернослонизfit_transformметод Подготовитьвектор,Эти векторные словарные карты слов «Воля» приезжают в их существующий документ из единой важности.

Создайте индекс пользователей и продуктов, предоставив рейтинги.

насиспользоватьpandasмодульизpivot_tableметод Приходитьсоздавать Иголкавернопродуктизиспользоватьсемья评分матрица。 нас Воляиспользоватьэтотматрицаосуществлятьматрица分解к确定использоватьсемья喜欢изпродукт:

Язык кода:javascript
копировать
userRatings = pd.pivot_table(data, values='Score', index=['UserId'], columns=['ProductId'])
userRatings.shape

насвозвращаться Воля ВоляиспользоватьсемьяипродуктизTfidfVectorizerвекторизменять换для Подходит для матричной факторизацииизматрица:

Язык кода:javascript
копировать
P = pd.DataFrame(user_vectors.toarray(), index=user_df.index, columns=user_vectorizer.get_feature_names())
Q = pd.DataFrame(product_vectors.toarray(), index=product_df.index, columns=product_vectorizer.get_feature_names())

сейчассуществовать,нас Может Создайте функцию матричной факторизации。

Создайте функцию матричной факторизации

Теперь мы используем функцию Воля Создайте для выполнения матричной факторизации. Матричная факторизация стала для 2006 Год Netflix Награда за вызов середина с использованием системы рекомендаций В из серии популярных алгоритмов. Это да Воля, пользовательский термин разложения матрицы для набора двух низкоразмерных прямоугольных матриц из серии алгоритмов, которые могут Воля умножать эти матрицы, чтобы восстановить исходную матрицу. Исходная матрица высшего порядка:

Язык кода:javascript
копировать
def matrix_factorization(R, P, Q, steps=1, gamma=0.001,lamda=0.02):
    for step in range(steps):
        for i in R.index:
            for j in R.columns:
                if R.loc[i,j]>0:
                    eij=R.loc[i,j]-np.dot(P.loc[i],Q.loc[j])
                    P.loc[i]=P.loc[i]+gamma*(eij*Q.loc[j]-lamda*P.loc[i])
                    Q.loc[j]=Q.loc[j]+gamma*(eij*P.loc[i]-lamda*Q.loc[j])
        e=0
        for i in R.index:
            for j in R.columns:
                if R.loc[i,j]>0:
                    e= e + pow(R.loc[i,j]-np.dot(P.loc[i],Q.loc[j]),2)+lamda*(pow(np.linalg.norm(P.loc[i]),2)+pow(np.linalg.norm(Q.loc[j]),2))
        if e<0.001:
            break

    return P,Q

Затем,Выполняем матричную факторизацию и записываем затраченное на это время:

Язык кода:javascript
копировать
%%time
P, Q = matrix_factorization(userRatings, P, Q, steps=1, gamma=0.001,lamda=0.02)

После этого нам нужно сохранить модель.

Сохранить модель как Pickle

сейчассуществовать,существоватьпроектизrootОглавлениесередина Создайтеимядляapiизпапка。 Затем,держатьтренироватьсяназадиз Модель,Должен Модельдаиспользоватьсемьяпродукт评级матрица分解назад获得из低阶матрица:

Язык кода:javascript
копировать
import pickle
output = open('api/model.pkl', 'wb')
pickle.dump(P,output)
pickle.dump(Q,output)
pickle.dump(user_vectorizer,output)
output.close()

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

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

Создать интерфейс

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

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

Мы Воля Создаем API, API принимать HTTP Форма запроса соответствии Пользователь вводит поисковый запрос и отвечает предложениями продуктов. Для этого выполните следующие действия:

  1. Мы Воляот импортируем API Запускаются необходимые модули. В нашем предыдущем разделе середина обсуждались эти импорты из модулей:
Язык кода:javascript
копировать
import numpy as np
import pandas as pd
from nltk.corpus import stopwords
from nltk.tokenize import WordPunctTokenizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from flask import Flask, request, render_template, make_response
from flask_wtf import FlaskForm
from wtforms import StringField, validators
import io
from flask_restful import Resource, Api
import string
import re
import pickle
from flask_jsonpify import jsonpify
  1. насвозвращаться ВоляимпортироватьFlaskмодульк Создайтебыстрый HTTP Служитьустройство,Должен Служитьустройство Можетк API изформасуществоватьопределенныйиздорога Зависит отначальствоиспользовать。 нас Воля实пример化Flaskприложениевернослон,Как показано ниже:
Язык кода:javascript
копировать
DEBUG = True
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcdefgh'
api = Api(app)

приложение КонфигурациясерединаизSECRET_KEYизценить Зависит Вам решать.

  1. Затем,Мы Воля Создаемclassфункция Приходитьиметь дело сотиспользоватьсемьяк搜索Запросформаполучатьприезжатьиз Ввод текста:
Язык кода:javascript
копировать
class TextFieldForm(FlaskForm):
    text = StringField('Document Content', validators=[validators.data_required()])
  1. для инкапсулированного API метод,нас Воляэто们УпаковкасуществоватьFlask_Workдобрыйсередина:
Язык кода:javascript
копировать
class Flask_Work(Resource):
    def __init__(self):
        self.stopwordSet = set(stopwords.words("english"))
        pass
  1. 再次需хотетьнассуществовать МодельсоздаватьпериодиспользоватьизcleanText()метод。 Воля использует В для очистки и фильтрации пользовательского ввода и поисковых запросов:
Язык кода:javascript
копировать
    def cleanText(self, line): 
        line = line.translate(string.punctuation)
        line = line.lower().split()

        line = [word for word in line if not word in self.stopwordSet and len(word) >= 3]
        line = " ".join(line)

        return re.sub(r"[^A-Za-z0-9^,!.\/'+-=]", " ", line) 
  1. Мы для приложения определяем домашнюю страницу,Должен Домашняя страница Воляот稍назадсуществоватьшаблонсерединасоздаватьизindex.htmlЗагрузка файла:
Язык кода:javascript
копировать
    def get(self):
        headers = {'Content-Type': 'text/html'}
        return make_response(render_template('index.html'), 200, headers)
  1. нассоздаватьбаза Вpostметодиз预测дорога Зависит от,Должендорога Зависит от Волясуществоватьполучатьприезжатьиспользоватьсемьяиз搜索Запросназадкпродукт建议руководитькольцоотвечать:
Язык кода:javascript
копировать
    def post(self):
        f = open('model.pkl', 'rb')
        P, Q, userid_vectorizer = pickle.load(f), pickle.load(f), pickle.load(f)
        sentence = request.form['search']
        test_data = pd.DataFrame([sentence], columns=['Text'])
        test_data['Text'] = test_data['Text'].apply(self.cleanText)
        test_vectors = userid_vectorizer.transform(test_data['Text'])
        test_v_df = pd.DataFrame(test_vectors.toarray(), index=test_data.index,
                                 columns=userid_vectorizer.get_feature_names())

        predicted_ratings = pd.DataFrame(np.dot(test_v_df.loc[0], Q.T), index=Q.index, columns=['Rating'])
        predictions = pd.DataFrame.sort_values(predicted_ratings, ['Rating'], ascending=[0])[:10]

        JSONP_data = jsonpify(predictions.to_json())
        return JSONP_data
  1. нас ВоляFlask_Workдобрый附加приезжатьFlaskсервер. Таким образом, сразу можно будет завершить сценарий, когда он будет существовать. Мы разместили API, API в соответствии сиспользоватьсемьяиз Поисковые запросы, которые можно предложитьпродукт:
Язык кода:javascript
копировать
api.add_resource(Flask_Work, '/')

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=4000, debug=True)

Воляэтотдокумент另житьдляmain.py。 создавать API После скрипта нам нужно разместить сервер.

  1. для Для этого введите на терминале существует следующую команду:
Язык кода:javascript
копировать
python main.py

этот Волясуществоватьпорт4000начальствоиз计算机начальство启动Служитьустройство,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-5hSVTM74-1681705163540)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/5f7e2b07-8b1d-4ba9-a2ac-c4002fc9a22a.png)]

Однако нам все равно нужно подготовить пользовательский интерфейс для использования этого API。 нас Волясуществоватьнижечастьсерединаэтот样做。

Создайте интерфейс, использующий API

сейчассуществовать,Мы Воля Создаем просто,наименееиз UI Приходитьuseнас создано API。 По сути, наша панель поиска позволяет пользователям вводить желаемые характеристики продукта, API. Уилл в соответствии сuserizquery возвращает предложения. Мы с Волей не обсуждаем строительство UI из кода, но уже Воля, которая содержит существование GitHub хранилище Библиотекасередина,Долженхранилище Библиотека Можетсуществоватьэта страницасерединапопытаться найтиприезжать。

После запуска сервера, UI Волясуществоватьhttp://127.0.0.1:4000处Может见,нравиться“создавать API Отвечать на поисковые запросы" раздел ишаг 9 показано.

нассоздаватьизинтерфейс Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-D5TCVjVV-1681705163541)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/65ce8f08-b037-4d00-a8b5-a94172b2d2bd.png)]

Пользователь вводит поисковый запрос и получает такие предложения:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-EVCUhtNZ-1681705163541)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/e161cee5-2998-42d1-a4ef-4ed108ad54ad.png)]

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

Подвести итог

В целом обучение DL Функция из Web приложение Есть нескольконастраиватьметод,Можетпроходить API, в браузере JavaScript илипроходить Воля DL Модельвстроен молчаприезжатьприложениеиззадняя часть Приходитьвыполнить。 В этой главе середина мы узнали, как использовать эти методы середина, наиболее распространенные из методов (база В). API из DL Web приложение), в то же время мы уверены, как проектировать подобные решения, были примерно из Обзора. мы Представлени Идентификация постановки проблемы. Мыслительный процесс, участвующий в последующем решении, и существующая интеграция дизайна. DL Модельиз Web Ловушки и болевые точки, которых следует избегать при совершении покупок.

существовать下одинглавасередина,Мы с Волей обсуждаем завершение проекта.,Долженпроектвне Вцель безопасностииз Воля DL наборстановитьсясуществовать Web приложение. Мы, Воля, понимаем DL Как помочь нам выявить подозрительную активность и прекратить рассылку спама пользователям.

10. Защита безопасности веб-приложений посредством глубокого обучения

В целом безопасность имеет первостепенное значение для любого веб-сайта, а также для всего программного обеспечения. Сегодня угрозы безопасности продолжают развиваться по мере увеличения доступной вычислительной мощности и развития областей технологий. Таким образом, важные веб-сайты должны принимать максимальные меры безопасности, чтобы обеспечить безопасность своих данных и пользовательской информации. отсуществовать Деловая деятельность и веб-сайты в Интернете всегда подвергаются высокому уровню риска и никогда не подвергались очень распространенным атакам безопасности. В системах безопасности, основанных на правилах, новые атаки особенно сложно выявить и предотвратить. Так что можете проверить Зависит отглубокое обучениеводить машинуиз安全система Предоставить из Параметры,Эти варианты являются эффективной альтернативой базовой системе правил.,А еще он способен правильно выявлять и блокировать новые угрозы.

В этой главе обсуждаются некоторые советы и методы.,Вы можете использоватьэтот些技巧итехнологияпроходитьиспользовать Python проводить глубже обучение по защите сайта из безопасности. Знакомство с нами Воля reCAPTCHA и Cloudflare и обсуждает, как они могут повысить безопасность веб-сайта. Мы также Воля покажем вам, как использовать базу Вглубокое. обучениеизтехнологий Python задняя часть, восстанавливает механизм безопасности для обнаружения злоумышленников на сайте. В этой главе «Воля» рассматриваются следующие темы:

  • История reCAPTCHA
  • DIY – существовать Django начальстворуководить Обнаружение вредоносного пользователя
  • использовать Python существовать Web приложениесерединаиспользовать reCAPTCHA
  • Cloudflare Безопасность веб-сайта

Мы Воляот История reCAPTCHA Начать эту главу с обсуждения, reCAPTCHA да Google создал гениальный инструмент,Это изменило Интернет.

Технические требования

ты можешьсуществоватьэта страницаначальстводоступ本главаизкод。

Для чтения этой главы вам понадобится следующее программное обеспечение:

  • Python 3.6+
  • TensorFlow 1.14
  • Keras и TensorFlow 1.14 совместимый
  • Django 2.x

История reCAPTCHA

«Легко для человека» – Это reCAPTCHA из лозунга, в котором изложена простая идея, а именно reCAPTCHA да Система, Должен система определяет приложения на сайте от пользователей да реальные от пользователей-людей также да автоматизированные скрипты 。 reCAPTCHA да CAPTCHA ТЕХНИЧЕСКАЯ настройка из SPECIFIC, Технология CAPTCHA дааиспользовать с изюминкой,Изогнутые буквы и цифры и визуальные эффекты,А пользователю предлагается расшифровать содержимое визуального изображения и записать его в простой формат.

нравиться果тысуществовать 2000 Когда вы станете обычным пользователем Интернета, тогда вы сможете существовать на многих веб-сайтах, на которых можно будет остановиться. на: Следующий проверочный код и картинка:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-2LY0z1Rq-1681705163542)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/bdf82cb8-25df-4316-ab30-7c488e38f119.png)]

CAPTCHA даИспользование В для отличения компьютеров от людей требует полной автоматизации и публичного теста Тьюринга.изакроним。

существовать Yahoo из Продвижения, CAPTCHA Система быстро существует на миллионах веб-сайтов. Но да, хотя эта система обеспечивает веб-сайту гораздо более высокий уровень безопасности, но она отнимает много времени и часто используется мошенническими программистами. Люди часто сразу же время от времени создают новый дизайн с другим дизайном и комбинацией визуальных элементов. CAPTCHA система.

в то же время,Разработчиксуществовать解决один非常другойизвопрос-Воляпечатные книгии Оцифровка других текстов。 Быстрое решение для сканирования книг. также Сразудаобъяснять,использоватьоптическое распознавание символовOCR)Воляпреобразование книгидляпервый разшагизчислотекстформа。 дляиспользовать стандартный шрифт изготовлен из печатного содержимого, качество сканирования очень хорошее, эффект преобразования очень хороший. Но да, ошибки формата печати и формата рукописи будут влиять на точность преобразования. люди们越Приходить越多地Волякартина像начальство传приезжатьсуществоватьонлайн-платформа,Для поиска по этим изображениям извлекайте текст и используйте его в различных целях.,Например, определить содержание изображения серединаиз,Местоположение или упоминание бренда.

CAPTCHA из Происхождение и несколько организаций.Заявления об изобретениях противоречивы, но да. Luis von Ahn существовать 2003 Год создания CAPTCHA Это слово позже стало для reCAPTCHA изоснователь компании «Должен» Google приобретение.

Краудсорсинг Служитьиз Pioneer Luis von Ahn использовать reCAPTCHA Программа для отображения отсканированных печатных книг середина, вырезанных из очень маленьких текстовых блоков. Только люди могут легко решить эти проблемы, автоматизированные процедуры терпят неудачу. В то же время, благодаря неизвестной краудсорсинговой деятельности, большое количество людей, внесших свой вклад, эти книги медленно оцифровывали. reCAPTCHA Конечно, пользователи обеспокоены, но проблема оцифровки книг решена.

Со временем reCAPTCHA эволюциядляиспользоватьбаза В AI из системы для выявления реальных и фейковых пользователей. существовать Во время написания этой книги используйте reCAPTCHA Зависит от Google Активно разрабатываемая и в настоящее время находящаяся в третьей версии, версия «Должен» позволяет пользователям с существующим фоном веб-страницы быть серединаверно аутентифицированными невидимыми и отображает вызов только в том случае, если существование не может успешно аутентифицировать пользователя. 。 Это действительно экономит пользователю много времени и усложняет работу машины.

Мы представляем существующий веб-сайт «Воля Учреждать», основанный на использовании Глубокого обучения Модели reCAPTCHA для веб-сайтов, который обеспечивает элементы безопасности.

Обнаружение вредоносного пользователя

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

для выявленных примеров Web приложениесерединаиз恶意использоватьсемья,Мы создали Модель,Должен Модель способна понять общее поведение пользователя для,И существуют в любом случае, когда ситуация пользователя изиспользовать в прошлом существенно меняется.,Прозвучит сигнал тревоги.

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

  • вывести столбец из минимального максимального диапазона
  • проходитьпопытаться найтивнеданныекартинасерединаизвнезапный всплеск
  • когдаданные При рисовании существования кривая Гаусса,Провести бит В конечной точки из отметки точки для выброса (аномалии)

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

Как мы определяем регулярное поведение пользователей сайта?

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

Иногда исключения могут не дать Зависить от ВНи один конкретный пользователь не ругается по этой причине. Зависит от ВСлужить из изменения, пользовательского трафика и его из ряда вон может измениться. В этом случае мы должны быть осторожны, чтобы не помечать всех пользователей как злоумышленников. Кроме того, пользователь из обычного ряда может да Зависит от ВХакерские попытки вызваны причинами, отличными от из. нравиться果真正изиспользоватьсемья突然начинатьдоступих不отвечать Должендоступизвеб-сайтчасть,Это ненормальное явление,необходимо предотвратить.

существует наш образец веб-сайта середина, наша Воля интегрируется вот так изсистемы. Для этого мы Воля проверяем сайт на странице входа в систему, существующую Должен страницу, мы Воля пытаемся идентифицировать пользователя на данормальном входе в систему и делаем исключение. Мы рассматриваем страницу входа пользователя, поскольку веб-сайт может иметь несколько страниц входа, и пытаемся определить, является ли она часто используемой страницей. Если пользователь попытается войти на страницу, на которой обычно не выполняется вход, мы отметим это как исключение. этоттолько если检查异常использоватьсемьяизпростой стандарт,Диапазон для сотен других параметров.

Модель на основе LSTM для аутентификации пользователей

У Воля этот раздел разделен на два основных подраздела:

  1. Учреждатьпроверка безопасности Модель
  2. Воля Модельделатьдля API хостинг

Начнем с части от Нет.

Создайте модель проверки действительности сертификации.

для Понятнов соответствии пользователь из активности входа в систему, если пользователь прошел аутентификацию, нам нужен запрос на проверку с помощью В API。 Мы можем построить эту модель с помощью следующего шага:

  1. Давайте начнем с модели сертификации разработки.,Должен Модель определяет, работает ли пользователь да не обычным способом. Сначала мы создаем Python 3.6+ из блокнота Jupyter, импортируя необходимые модули.,Как показано ниже:
Язык кода:javascript
копировать
import sys
import os
import json
import pandas
import numpy
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence
from keras.preprocessing.text import Tokenizer
from collections import OrderedDict
  1. сейчассуществовать,нас Может Воляданныеимпортироватьприезжатьпроектсередина. нас Волясуществоватьиспользоватьданныенабор。 нас Воляданныенабор加载приезжатьпроектсередина,Как показано ниже:
Язык кода:javascript
копировать
file = 'data-full.csv'

df = pandas.read_csv(file, quotechar='|', header=None)
df_count = df.groupby([1]).count()
total_req = df_count[0][0] + df_count[0][1]
num_malicious = df_count[0][1]

print("Malicious request logs in dataset: {:0.2f}%".format(float(num_malicious) / total_req * 100))

Ваш Воля просматривает некоторую общую статистическую информацию о данныхиз,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-PUunEPyr-1681705163542)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/db398383-b1d7-407a-9f2a-ed4f4223c548.png)]

Ваш Волявьюприезжатые содержит текст,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-GInpz5BD-1681705163542)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/8d84d0b7-32b3-4ac3-a3d1-d1ba262ee005.png)]

Это наблюдение важно, и мы будем обращаться к этому снимку экрана в будущем.

  1. Но да, все данные представлены в строковом формате. Нам нужно, чтобы Воля конвертировалась в тип значения когдаиз. также,данныенаборглаз前только ВключатьодинDataFrame; Мы Воляиспользуем следующий код Воля, который разделен на две части: столбец тренироваться и столбец метки:
Язык кода:javascript
копировать
df_values = df.sample(frac=1).values

X = df_values[:,0]
Y = df_values[:,1]
  1. кроме того,Зависит от ВJustиспользуемыеэпизодысерединаи Квесты,связанныеиз Особенности,поэтомунас需хотеть丢失Некоторый列:
Язык кода:javascript
копировать
for index, item in enumerate(X):
    req = json.loads(item, object_pairs_hook=OrderedDict)
    del req['timestamp']
    del req['headers']
    del req['source']
    del req['route']
    del req['responsePayload']
    X[index] = json.dumps(req, separators=(',', ':'))
  1. После завершения этой операции мы теперь можем продолжать существование и продолжать запросить текст для продолжения. причастиеда Метод, при котором середина разбивает предложения Воля на большие сегменты, а предложения Воля на слова. Мы можем выполнить токенизацию с помощью следующего кода:
Язык кода:javascript
копировать
tokenizer = Tokenizer(filters='\t\n', char_level=True)
tokenizer.fit_on_texts(X)
  1. После завершения причастия мы запрашиваем запись тела Волякаждого для конвертации в вектор. Для этого нам нужно числовое представление, чтобы компьютер мог выполнять с ним вычисления. После этого переходим к шагу Воляданные эпизоды разделенные на две части - данные эпизода из 75% использовать Втренироваться,отдыхдля тестирования. Аналогично, следующий код разбивает столбец метки:
Язык кода:javascript
копировать
num_words = len(tokenizer.word_index)+1
X = tokenizer.texts_to_sequences(X)

max_log_length = 1024
split = int(len(df_values) * .75)

X_processed = sequence.pad_sequences(X, maxlen=max_log_length)
X_train, X_test = X_processed[0:split], X_processed[split:len(X_processed)]
Y_train, Y_test = Y[0:split], Y[split:len(Y)]

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

Например, рассмотрим следующее предложение со словом серединаиз. - “Sachin Tendulkar да Великий игрок в крикет». Для того, чтобы передать задуманный смысл, порядок слов из менять нельзя. существоватьмашинное обучениесередина При обработке текстовых данных этот Сразуда сохраняет важность порядка и контекста, существующего где.

существоватьнасиз案примерсередина,нас Воляиспользоватьспециальныйтипизрекуррентная нейронная сеть-долговременная памятьLSTM),Это Воля учится распознавать регулярные пользовательские строки.

о Подробное обсуждение LSTM выходит за рамки этой книги.,Но да, если вам интересно,МожетссылказдесьПриходить详细Понятно解это。

  1. сейчассуществовать,Мы добавляем слои, а также встраивания слов с помощью следующего кода,Это помогает поддерживать связи между числовым кодом текста и реальными словами:
Язык кода:javascript
копировать
clf = Sequential()
clf.add(Embedding(num_words, 32, input_length=max_log_length))
clf.add(Dropout(0.5))
clf.add(LSTM(64, recurrent_dropout=0.5))
clf.add(Dropout(0.5))
clf.add(Dense(1, activation='sigmoid'))

Мы из вывода одного нейрона,в данном случае существует ненормальная попытка входа в систему или ненормальная попытка входа в систему,это们分别持有0или1

  1. Затем,Мы используем следующий код, который компилирует модель и печатает сводку:
Язык кода:javascript
копировать
clf.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print(clf.summary())

Краткое описание модели составляется следующим образом:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-dspQYXbz-1681705163543)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/0a057f86-a447-49f8-a185-d82dc84ada58.png)]

сейчассуществовать,нас Подготовить继续тренироваться Модель:

  1. насиспользовать Модельизfit()метод,Как показано ниже:
Язык кода:javascript
копировать
clf.fit(X_train, Y_train, validation_split=0.25, epochs=3, batch_size=128)
  1. Наша Воля быстро проверит точность проживания по Модели. Мы видим, что приезжать Должен Модельсуществовать проверенные данные по степени точности превышает 96%。 Результат очень впечатляющий. Мы можем проверить точность Моделиза с помощью следующего кода:
Язык кода:javascript
копировать
score, acc = clf.evaluate(X_test, Y_test, verbose=1, batch_size=128)
print("Model Accuracy: {:0.2f}%".format(acc * 100))

Вы должны увидеть результат прибытия, как показано на скриншоте ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-ZkWYdyof-1681705163543)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/15fc01ad-104b-40c0-a6f4-5490fed2bbf6.png)]

  1. Давайте сохраним работу. Мы воляиспользуем их, чтобы создать использование В для проверки личности пользователя из API。 Мы можем сохранить Модель с помощью следующего кода:
Язык кода:javascript
копировать
clf.save_weights('weights.h5')
clf.save('model.h5')

Когда модель готова, у нас теперь есть доступное существование для хостинга API Flask.

Разместите собственную модель аутентификации

Теперь давайте создадим API, API, который будет воляпринимать пользователей из попыток входа в систему и возвращать их верную достоверность входа в систему:

  1. Мы сначала импортируем создателя Flask Служитьустройствонеобходимыйизмодуль,Как показано ниже:
Язык кода:javascript
копировать
from sklearn.externals import joblib
from flask import Flask, request, jsonify
from string import digits

import sys
import os
import json
import pandas
import numpy
import optparse
from keras.models import Sequential, load_model
from keras.preprocessing import sequence
from keras.preprocessing.text import Tokenizer
from collections import OrderedDict
  1. сейчассуществовать,нас需хотетьотmodelтренироватьсяшагсерединаимпортироватьдержатьиз Модельимасса。 один旦этот样做,Нам нужно перекомпилировать Модель,ииспользоватьmake_predict_function()методделать Что Модельстановитьсядляpredictфункция:
Язык кода:javascript
копировать
app = Flask(__name__)

model = load_model('lstm-model.h5')
model.load_weights('lstm-weights.h5')
model.compile(loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model._make_predict_function()
  1. Наши Воляиспользованные функции очистки клиента существуют в приложении из входящего запроса середина, удаляющего цифры и прочее бесполезное из текста:
Язык кода:javascript
копировать
def remove_digits(s: str) -> str:
    remove_digits = str.maketrans('', '', digits)
    res = s.translate(remove_digits)
    return res
  1. Следующий,нассуществоватьприложениесерединасоздавать/loginдорога Зависит от,когда пользователь пытается войти в систему, Должендорога Зависит от Воляпринимать из приложения клиентаиз учетных данных для входа и дополнительных деталей заголовка запроса. Обратите внимание, что мы по-прежнему отбрасываем некоторые дополнительные заголовки запросов, такие как существование этого процесса середина. тренироваться。
  2. После очистки данных, мы занимаемся векторизацией их причастий. Эти шаги, которые мы существуемтренироваться, выполняются во время той же предварительной обработки. Этодля Понятноубеждатьсяверновходящий Запрос изиметь дело ситренироваться Этапы абсолютно одинаковые:
Язык кода:javascript
копировать
@app.route('/login', methods=['GET, POST'])
def login():
    req = dict(request.headers)
    item = {}
    item["method"] = str(request.method)
    item["query"] = str(request.query_string)
    item["path"] = str(request.path)
    item["statusCode"] = 200
    item["requestPayload"] = []

    X = numpy.array([json.dumps(item)])
    log_entry = "store"

    tokenizer = Tokenizer(filters='\t\n', char_level=True)
    tokenizer.fit_on_texts(X)
    seq = tokenizer.texts_to_sequences([log_entry])
    max_log_length = 1024
    log_entry_processed = sequence.pad_sequences(seq, maxlen=max_log_length)

    prediction = model.predict(log_entry_processed)
    print(prediction)
    response = {'result': float(prediction[0][0])}
    return jsonify(response)

Наконец, приложение заканчивается. Форма JSON возвращает надежного пользователя для аутентификации из уверенности.

  1. Чтобы существовать нужный порт на сервере «Проектировать Служить», нам необходимо в конце существующего скрипта добавить следующую строку:
Язык кода:javascript
копировать
if __name__ == '__main__':
    app.run(port=9000, debug=True)
  1. наконец,нас Воля Служитьустройство Скриптдокумент另житьдляmain.py。 нас Воляпроходитьсуществоватьсистеманачальствоиспользоватьниже Заказ Приходитьделать Служитьустройствобегать:
Язык кода:javascript
копировать
python main.py

Это Воля стартует Flask Сервер, который прослушивает петлю IP 127.0.0.1ипорт9000。 Вы можете легко установить этот скрипт на облачную виртуальную машину и сделать универсальную контрольную точку безопасности. API Воля Предоставляется всем приложенияи сайтам.

сейчассуществовать,нас Может继续создаватьсуществовать Django Рамка на проектиз Web приложение.

Приложение на основе Django, использующее API

Наша создазисзиспользовать проверку подлинности пользователя API с сайта Воляда Простая демонстрация на рекламном щите. Веб-сайт Должен Воля позволяет пользователям войти в систему, а затем Воля выставляет счета для размещения рекламных щитов. хотя Долженприложение простое, но оно содержит базу Глубокое обучениеиз Интеграция безопасностииз Две основные функции - обнаружение аномалий при аутентификации пользователя и при выставлении счета reCAPTCHA извыполнить - избежать спама.

ниже各节Воляобсуждатьсоздаватьприложениеизшаг。

Настройки проекта Джанго

существовать Этот разделсередина,нас Воляиспользовать Django。 Прежде чем продолжить работу с этим разделом, убедитесь, что на вашем существующем компьютере установлена ​​действующая версия. Django。 ты можешьсуществовать“Нет. 8 глава",“использовать python существовать Microsoft Azure начальствопроводить глубже обучение”из“Django Web развивать Введение”частьсерединапопытаться найтиприезжать Django из Инструкция по установке.

сейчассуществовать,Давайте создадим проект Django. для этого,Мы используем следующие команды:

Язык кода:javascript
копировать
django-admin startproject webapp

этот Волясуществоватькогда前папкасерединасоздаватьwebappОглавление。 Мы Волясуществовать этот каталог середина добавляем всех Воля в из кодов. Текущая структура каталогов выглядит следующим образом:

Язык кода:javascript
копировать
webapp/
    manage.py
    webapp/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    db.sqlite3

После завершения этой операции,нассейчассуществовать Подготовитьсуществоватьпроектвнутренний Создайтеприложение,Это Волясуществовать в следующей части шоу середина.

Создать приложение в проекте

Такие как "Нет. Глава 8",“существовать Microsoft Azure начальствоиспользовать Python проводить глубже обучение”серединаописал,Теперь мы должны добавить в Воляприложение веб-сайт «Единый проект проживания».,Мы используем следующие команды:

Язык кода:javascript
копировать
cd webapp
python manage.py startapp billboard

фронт из Заказ Волясуществоватьпроектсередина Создайтеимядляbillboardизприложение. Да,Нам еще предстоит Воля это приложение связать приезжатьпроект.

Связать приложение с проектом

хотеть Воляприложениедобавить вприезжатьпроектсередина,нас需хотеть Воляприложениеимясказатьдобавить вприезжатьпроектнастраиватьдокументсерединаsettings.pyсерединаизприложениесписоксередина,нравитьсянижекодпоказано. существоватьsettings.pyсередина,Добавьте следующие изменения:

Язык кода:javascript
копировать
# Application definition

INSTALLED_APPS = [
    'billboard',  # <---- ADD THIS LINE
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Таким образом, мы готовим существующий сайт Создано дорога Зависит от.

Добавьте маршруты на свой сайт

Добавить дорогу Зависит в проект от,насредактироватьwebappизurls.pyдокумент:

Язык кода:javascript
копировать
from django.contrib import admin
from django.urls import path, include # <--- ADD 'include' module

urlpatterns = [
    path('', include('billboard.urls')), # <--- ADD billboard.urls path
    path('admin/', admin.site.urls),
]

Да,billboard.urlsдорога径不житьсуществовать。 Мы Волясоздаем марш из дороги.

Создание файлов маршрутизации в приложении доски объявлений.

существоватьbillboardпапкасередина Создайтеимядляurls.pyизновыйдокумент,Как показано ниже:

Язык кода:javascript
копировать
from django.urls import path
from django.contrib.auth.decorators import login_required

from . import views

urlpatterns = [
    path('', login_required(views.board), name='View Board'),
    path('add', login_required(views.addbill), name='Add Bill'),
    path('login', views.loginView, name='Login'),
    path('logout', views.logoutView, name='Logout'),
]

Воляэто сохранить какдляwebapp/billboard/urls.py。 пожалуйста, обрати внимание,насуже Воля Некоторыйviewsпроектимпортироватьэтотдорога Зависит от Обрабатывать файлы. кроме того,насиспользовать Понятноlogin_requiredметод。 Это означает, что мы можем приступить к сертификации сайта.

Добавьте и настройте маршруты аутентификации

Чтобы добавить проверку с помощью В издорога Зависит от,пожалуйстасуществоватьwebapp/settings.pyдокументиз末尾добавить внижесодержание:

Язык кода:javascript
копировать
LOGIN_URL = "/login"
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/logout'

этот些ХОРОШО表明нас Воля需хотеть/loginи/logoutдорога Зависит от。

Создать страницу входа

хотеть Создать страницу входа,нас需хотетьсуществоватьрекламный щитприложениесередина Воля/loginдорога Зависит отдобавить вприезжатьurls.py。 Но да, мы уже приезжаем. Следующий,нас需хотеть ВоляloginView视картинадобавить вприезжатьдоска объявленийприложениеизviews.pyдокументсередина:

Язык кода:javascript
копировать
def loginView(request):
    if request.user.is_authenticated:
        return redirect('/')
    else:
        if request.POST:
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(request, username=username, password=password)
            ## MORE CODE BELOW THIS LINE

            ## MORE CODE ABOVE THIS LINE
            else:
                return redirect('/logout')
        else:
            template = loader.get_template('login.html')
            context = {}
            return HttpResponse(template.render(context, request))

Предыдущая функция сначала проверяет, существуют ли данные пользователя Библиотекасерединада, переданные имени пользователя и паролю isusername и паролю. поэтому,Воля Приходить,нас Воля需хотетьодиниспользоватьсемья Модель Приходить Воляиспользоватьсемьяхранилищесуществоватьданные Библиотекадокументdb.sqlite3середина,Должендокументдасуществоватьпроектсоздаватьшагсерединасоздаватьиз。

Затем,Должен функция проверки подлинности Волявызов Модель API для проверки входа пользователя да НЕТ нормально. Проверка осуществляется с помощью следующего кода:

Язык кода:javascript
копировать
def loginView(request):
    ...
            ## MORE CODE BELOW THIS LINE            
            if user is not None:
                url = 'http://127.0.0.1:9000/login'
                values = { 'username': username, 'password': password }
                data = urllib.parse.urlencode(values).encode()
                req = urllib.request.Request(url, data=data)
                response = urllib.request.urlopen(req)
                result = json.loads(response.read().decode())
                if result['result'] > 0.20:
                    login(request, user)
                    return redirect('/')
                else:
                    return redirect('/logout')
            ## MORE CODE ABOVE THIS LINE
    ...

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

дляэтот,нас需хотеть Кview.pyдокументдобавить в Некоторый必хотетьизимпортировать,Как показано ниже:

Язык кода:javascript
копировать
from django.shortcuts import redirect
from django.contrib.auth import authenticate, login, logout

from django.http import HttpResponse
from django.template import loader

from django.conf import settings
from django.urls import reverse_lazy
from django.views import generic

from django.contrib.auth.models import User

import urllib
import ssl
import json

Уведомление,насвозвращатьсяотdjango.contrib.authимпортировать Понятноlogoutметод。 этот Воляиспользовать Всоздаватьlogout视картина。

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

сейчассуществовать,让нассоздаватьlogout视картина。 Сделать это очень просто следующим образом:

Язык кода:javascript
копировать
def logoutView(request):
    logout(request)
    return redirect('/')

сейчассуществовать,让нас Создать страницу входаизшаблон。

Создать страницу входашаблон

Чтобы создать шаблон, нам сначала нужна папка, необходимая для создания.

существоватьbillboardОглавлениесередина Создайтеимядляtemplatesизпапка。 Сейчас существует структура каталогов Воля Похоже на:Следующий код:

Язык кода:javascript
копировать
webapp/
    manage.py
    webapp/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    billboard/
        templates/
        ___init_.py
        admin.py
        apps.py
        models.py
        tests.py
        urls.py
        views.py

существоватьtemplatesпапка Внутри,нас Воля放置шаблондокумент。первыйсоздаватьbase.html,нас Волясуществовать所有Что他шаблонсередина Расширять。 этот Воля ВключатьCSSиJSВключать,А также страница с обычной блочной структурой.

насужесуществоватьздесь提供Понятноэтотдокументиз示пример。

После завершения этой операции,нас Подготовитьсоздаватьlogin.htmlдокумент,Должен файл Воля выполняет отправку значения логина Воля приезжать Служить из процесса:

Язык кода:javascript
копировать
{% extends 'base.html' %}
{% block content %}
<div class="container">
    <div class="row">
        <div class="form_bg">
            <form method="post">
                {% csrf_token %}
                <h2 class="text-center">Login Page</h2>
                # WE'LL ADD MORE CODE BELOW THIS LINE
                ...
                # WE'LL ADD MORE CODE ABOVE THIS LINE
            </form>
        </div>
    </div>
</div>
{% endblock %}

Уведомление,Мы уже существуемфронт из视картинашаблонсередина扩展Понятноbase.htmlшаблон。

ты можешьсуществоватьэта страницаначальство阅读связанный扩展 Django Шаблон с дополнительной информацией.

этот登录页面серединаизформа发внеPOSTпожалуйста求,поэтому需хотеть传递 CSRF Токен. Теперь мы можем создать страницу после завершения входа в систему.

шаблон страницы рекламного щита

Зависит от Внасуже经настраивать Понятноbase.htmlдокумент,поэтомунас Может简单地существоватьboard.htmlшаблондокументсерединаверно Что Расширятьксоздаватьрекламный щитпоказывать页面:

Язык кода:javascript
копировать
{% extends 'base.html' %}
{% block content %}
<div class="container">
    <div class="row">
        {% for bill in bills %}
        <div class="col-sm-4 py-2">
            <div class="card card-body h-100">
                <h2>{{ bill.billName }}</h2>
                <hr>
                <p>
                    {{ bill.billDesc }}
                </p>
                <a href="#" class="btn btn-outline-secondary">{{ bill.user.username }}</a>
            </div>
        </div>
        {% endfor %}
    </div>
</div>
{% endblock %}

существоватьфронт изкод块середина,нас遍历Понятнорекламный щитданные Библиотекасередина所有Можетиспользоватьизbillsпроект,ииспользоватьшаблонсерединаизfor循环показывать Понятноэто们。 base.htmlшаблонизиспользовать允许нас减少视картинашаблонсерединаиз重复код量。

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

добавить вприезжатьшаблон страницы рекламного щита

Чтобы создать законопроект «Воля», добавьте рекламный щит прибытия из шаблона страницы.,насиспользоватьнижекодсоздаватьadd.htmlшаблондокумент:

Язык кода:javascript
копировать
{% extends 'base.html' %}
{% block content %}
<div class="container">
    <div class="row">
        <div class="form_bg">
            <form method="post" id="form">
                {% csrf_token %}
                <h2 class="text-center">Add Bill</h2>
                <br />
                <div class="form-group">
                    <input type="text" class="form-control" id="billname" name="billname" placeholder="Bill Name">
                </div>
                <div class="form-group">
                    <input type="text" class="form-control" id="billdesc" name="billdesc" placeholder="Description">
                </div>
                <br />
                <div class="align-center">
                    <button type="submit" class="btn btn-success" id="save">Submit</button>
                </div>
            </form>
        </div>
    </div>
</div>
{% endblock %}

существоватьфронт изкод块середина,нас扩展Понятноbase.htmlшаблонкдобавить в允许насдобавить в帐单излист。 Уведомлениеformэлементсередина CSRF Токен изиспользовать. существовать Django середина, нам всегда нужно существование, чтобы выдавать POST Пропуск действителен при запросе CSRF Токен.

ты можешьсуществоватьэта страницаначальство Понятно解связанный Django середина CSRF Токен из дополнительной информации.

Да,и т. д.,насвозвращаться没有добавить в视картина Приходитьиметь дело срекламный щит页面идобавить в账单页面。 Давайте добавим их, теперь существуют!

модель рекламного щита

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

существоватьmodels.pyдокументсередина,Добавьте следующий код:

Язык кода:javascript
копировать
from django.utils.timezone import now
from django.contrib.auth.models import User

class Bills(models.Model):
    billName = models.CharField("Bill Name", blank=False, max_length=100, default="New Bill")
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    billDesc = models.TextField("Bill Description")
    billTime = models.DateTimeField(default=now, editable=False)

    class Meta:
        db_table = "bills"

существоватьфронт изкодсередина,нассоздавать ПонятноодинимядляBillsизновый Модель. Этот Воля хранит пользователя на доске объявлений, добавляет все счета и детали. userМодельиэтот Модель Связьдлявнешний ключ。 Воляэтотдокумент另житьдляwebapp/billboard/models.py

ты можешьсуществоватьэта страницаначальство Понятно解связанныйвнешний ключидругие ключииз Подробнее.

После завершения этой операции,нассейчассуществовать Можетсуществовать视картинасерединаиспользоватьBillsМодель.

Создать вид рекламного щита

хотетьначинатьсуществоватьприложениесерединаиспользоватьBillsМодель,наспервый需хотеть Воля Чтоимпортироватьviews.pyдокумент。

существоватьview.pyдокументиз顶部добавить вниже ХОРОШО:

Язык кода:javascript
копировать
from .models import Bills

Затем,Мы можем добавить просмотр для рекламного щита,Как показано ниже:

Язык кода:javascript
копировать
def board(request):
    template = loader.get_template('board.html')
    context = {}
    context["isLogged"] = 1

    Bill = Bills.objects.all()

    context["bills"] = Bill

    return HttpResponse(template.render(context, request))

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

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

Существующее мнение середина, мы волясоздаем законопроект. Если верно Зависит отaddbillметод提供Служитьиздорога Зависит от提вне Понятно有效изPOSTпожалуйста求,Мы Воля СоздаемновыйизBillвернослони Воля Чтодержатьприезжатьданные Библиотекасередина. В противном случае мы отображаем форму «Добавить счет пользователю» с помощью Виз. Давайте посмотрим, как существует следующий код середина выполняет эту операцию:

Язык кода:javascript
копировать
def addbill(request):
    if request.POST:
            billName = request.POST['billname']
            billDesc = request.POST['billdesc']
            Bill = Bills.objects.create(billName=billName, user=request.user, billDesc=billDesc)
            Bill.save()
            return redirect('/')
    else:
        template = loader.get_template('add.html')
        context = {}
        context["isLogged"] = 1

        return HttpResponse(template.render(context, request))

Да,существоватьиспользовать Долженприложение До,Нам все еще нужен создатель администратора.

Создайте пользователя-администратора и протестируйте его.

Создать пользователя администратора,Мы используем следующие команды:

Язык кода:javascript
копировать
 python manage.py createsuperuser

Теперь мы можем использовать следующую команду для переноса изменений Библиотеки данных:

Язык кода:javascript
копировать
python manage.py makemigrations
python manage.py migrate

производит следующий вывод:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-fF1TSj2t-1681705163544)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/e0506807-c8f7-4fa1-b8c1-2b79d7600dd8.png)]

сейчассуществовать,让насиспользовать reCAPTCHA Инструменты для защиты релизов на рекламных щитах.

Использование reCAPTCHA в веб-приложениях Python

хотеть Воля reCAPTCHA Чтобы добавить сайт для проживания, нам сначала нужно Google reCAPTCHA Приобретение консоли API Ключ:

  1. Сначала войдите в систему, чтобы добратьсявашеиз. Google счет,Затемизменятьприезжатьздесь
  2. Далее нажмите «Управление консолью» в правом верхнем углу.
  3. Следуйте инструкциям на сайте «Изшаг Воля», чтобы добавить приезжатьконсоль. нравиться果хотетьсуществоватьместныйсистеманачальстворуководить测试,должно быть указано127.0.0.1делатьдля URL №1.
  4. Получите свой домен API ключ. ты Открытьдомениз API Ключ на экране должен быть похожим на:Скриншот ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-fC41bi7T-1681705163544)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/fee62e08-e223-469d-a77e-82bac332aa67.png)]

  1. сейчассуществовать,Воляключдобавить вприезжать Web приложениеизsettings.pyдокументсередина,Как показано ниже:
Язык кода:javascript
копировать
GOOGLE_RECAPTCHA_SECRET_KEY = '6Lfi6ncUAAAAANJYkMC66skocDgA1REblmx0-3B2'
  1. Следующий,нас需хотеть Воляхотеть加载из Скриптдобавить вприезжатьadd.htmlшаблонсередина. нас Воля Чтодобавить вприезжатьрекламный щитприложение页面шаблонсередина,Как показано ниже:
Язык кода:javascript
копировать
<script src="https://www.google.com/recaptcha/api.js?render=6Lfi6ncUAAAAAIaJgQCDaR3s-FGGczzo7Mefp0TQ"></script>
<script>
    grecaptcha.ready(function() {
        grecaptcha.execute('6Lfi6ncUAAAAAIaJgQCDaR3s-FGGczzo7Mefp0TQ')
        .then(function(token) {
            $("#form").append('<input type="hidden" name="g-recaptcha-response" value="'+token+'" >');
        });
    });
</script>

{% endblock %}

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

  1. наконец,Нам нужно существование Добавить просмотр рекламного щита серединапроверка reCAPTCHA, как показано ниже:
Язык кода:javascript
копировать
def addbill(request):
    if request.POST:
        recaptcha_response = request.POST.get('g-recaptcha-response')
        url = 'https://www.google.com/recaptcha/api/siteverify'
        values = {  'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
                    'response': recaptcha_response}
        context = ssl._create_unverified_context()
        data = urllib.parse.urlencode(values).encode()
        req = urllib.request.Request(url, data=data)
        response = urllib.request.urlopen(req, context=context)
        result = json.loads(response.read().decode())
        if result['success']:
            # Do stuff if valid
    else:
        # Do actions when no request is made

ты можешьотэта страницасерединаизначальствоодинкод块серединаполучатьaddbillметодизвесь工делать版本。

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

Язык кода:javascript
копировать
python manage.py runserver

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

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-VR43TXqy-1681705163544)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/6be54474-9af3-4242-a2ac-c55719a38b51.png)]

пожалуйста, обрати внимание,в это время,ты Воля需хотетьв то же времябегатьосуществлять登录验证из Flask сервер.

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

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-F2eFIbkL-1681705163544)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/d28fc58c-b859-4882-869e-c5c3d783772d.png)]

пожалуйста, обрати внимание Правый нижний угол экранаиз reCAPTCHA логотип. этот表明использовать reCAPTCHA Страница защищена от спама. Если вам удастся опубликовать сообщение успешно, это покажет, что счет был отправлен. Иначе тебе, Воля, грозит reCAPTCHA Проблемы с проверкой.

Безопасность веб-сайта с Cloudflare

Cloudflare да Лидирующий в отрасли Web Поставщик инфраструктуры и безопасности веб-сайтов. Он существует, создает уровень безопасности и обеспечивает быструю доставку контента между веб-сайтом и его пользователями, а также обеспечивает его Служить Зависит. от всего трафика, от калибровки и безопасности сайта и других функций. 2017 Год,Cloudflare для более 1200 Тысячи веб-сайтов предоставляют DNS Служить. этот些Служить Включает сеть доставки контента,Распределенный отказ в обслуживанииDDoS)защита от атак,Хакеры пытаются защитить и другую интернет-безопасность Служить,Например Защита от наводнений。

2014 Год,Cloudflare Сообщить об облегчении 400 Gib/s DDoS нападение, за которым вскоре последовало еще одно 500 Gib/s из атаки. существующий рекорд крупнейшей из атак дасуществовать на любом веб-сайте GitHub , сайт смотрит 1.4Tb/s из DDoS Наводнение. GitHub использоватьизда Akamai Prolexic(Cloudflare из альтернативных продуктов) и смог выдержать атаки, только уронил 10 минут, а затем полностью возвращается в нормальное состояние. Cloudflare Бесплатно для всех пользователей. DDoS защита.

Чтобы начать существование с развертывания веб-сайта Cloudflare Служить,ты需хотеть Воля Cloudflare настраиватьдляиспользоватьсемьяихостинг Служитьустройство之间изсередина Прослойка。 На картинке ниже описано Cloudflare Как быть в сети:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-FeM1dPjm-1681705163545)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/ada2acb7-d8a7-4b38-8329-e7e64ba13a85.png)]

Таким образом, Cloudflare Будет автоматически существовать в пределах основного диапазона (проходить Google из reCAPTCHA Помогите нам обнаружить ранее созданные специальные решения для спама и злоумышленников) (существовать бесплатный уровень середина, существует середина более высокого уровня с более мощными решениями) при обновлении). Поэтому, для небольшой группы разработчиков, воля они из потребностей безопасности подталкивают Cloudflare Из систем и обеспечения их защиты от многих уязвимостей безопасности это очень интуитивно понятно и просто.

Подвести итог

существовать本главасередина,нас Понятно解Понятнонравиться何использовать Cloudflare из Служитьдля сайта обеспечивает безопасность. Мы также рассмотрели, как может создаваться Web приложения другое безопасность Служить (напр. reCAPTCHA) интегрированное использованиеиз безопасности API。 Крайне важно, чтобы любой веб-сайт любого размера принимал эти меры безопасности, чтобы обеспечить безопасность своего веб-сайта. В последнее время произошли серьезные нарушения, и AI Система привода испробовала множество лазеек, которые Зависит от В Не да проблемы без становления для новостей. использоватьглубокое обучение проводит исследование безопасности по актуальной теме и полагает, что существование скоро наступит из Воля Воля полностью полагается на глубокие обучение выявлению и устранению угроз.

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

11. DIY — производственная среда Web DL

существоватьранееизглава节середина,нас Понятно解Понятнонравиться何использовать Некоторый著имяизглубокое обучениеDL)платформа,Например Amazon Web ServicesAWS) , Google Cloud PlatformGCP)и Microsoft Azure,ксуществоватьнасиз Web приложениесередина启использовать DL。 Потом посмотрим, как приезжатьиспользовать DL Сделайте сайт безопасным. Но да, производство существует середина, проблемы обычно не только да Построить прогнозную модель, когда Настоящая проблема возникает, когда вы хотите обновить ответ модели, который уже был отправлен пользователю. существоватьзаменять Модельдокументиз 30 секунды или 1 Сколько времени и бизнеса вы можете потерять за считанные минуты? Что делать, если есть каждый пользовательская настройка и з Модель? Это может даже означать миллиарды долларов. Facebook Например, из платформы.

Вам необходимо определиться с решениями по обновлению производства серединаиз Модель. кроме того,Зависит от Впроглотитьизданные Может能不да采использоватьтренироватьсяиз Формат,поэтомуты需хотетьопределениеданныепоток,Для того, чтобы Воля могла легко трансформировать его для использования.

В этой главе середина мы, Воля, обсуждаем обновление методов производства Модельиз и выбор идей для каждого метода. Мы Воляот начнем с краткого Обзора, а затем что-то продемонстрируем с помощью Всоздавать. DL данныепотокиз著имяинструмент. наконец,нас Волявыполнить Собственныйизонлайн-обучениеилипостепенное обучение Демонстрация, обновление производства Модельиз методом с Учреждать.

Наша Волясуществовать В этой главе рассматриваются следующие темы:

  • Обзор DL в методах производства
  • Популярные инструменты для развертывания ML в производстве
  • Реализация демонстрации производственной среды DL Web.
  • Разверните проект в Heroku
  • безопасность,Мониторинг и оптимизация производительности

Технические требования

ты можешьсуществоватьэта страницаначальстводоступ本главаизкод。

Для чтения этой главы вам понадобится следующее программное обеспечение:

  • Python 3.6+
  • Flask 1.1.12+

Все остальные установки Волясуществовать эту главу середина в ХОРОШО.

Обзор DL в методах производства

Несмотря ни на что DL возвращатьсядаклассическийизмашинное обучениеML),существовать Производствосерединаиспользовать Модельчас,Всевстречасталкиватьсяприезжатьиспытание。 Основная причина даданных топливом машинное обучение, и данные со временем будут меняться. существовать Производствосерединаразвертывать ML Модельчас,Зависит от Вданные будут продолжать меняться с течением времени, поэтому они будут регулярно обновляться веретренироваться. Поэтому, верно ML Осуществляйте тренироваться не из вещей роскоши, а из предметов первой необходимости. DL только если ML из подполя, это не исключение. машинное Есть два популярных метода изтренироваться: пакетное обучение ионлайн-обучение и особенно дасуществовать производство середина.

нас电影电影下下один下载下载的онлайн-обучение。 В этом разделе середина давайте познакомимся с концепцией пакетного обучения. существоватьпакетное обучениесередина,наспервыйсуществоватьидентификацияданные块начальствотренироваться ML Модель, затем существованиеверно Долженданные блоки для тренироваться, затем дл я Модель предоставляет следующий блок данных, и этот процесс Воля продолжается до тех пор, пока все блоки данных не будут израсходованы. Эти блоки называются пакетами.

существоватьсейчас实生活серединаизпроектсередина,ты Воля Всегдасуществоватьиметь дело с大量данные。 Одновременная загрузка этих наборов данных в память не идеальна. В этом случае существует пакетное обучение, да, у нас есть помощь. Пакетное обучение имеет некоторые недостатки, о которых мы расскажем в следующем разделе. ты Может能想知道(также Может能不да),Но дадаиз,只хотетьсуществоватькнигасерединатренироватьсянейронная сеть,Мы в Сразу проведем пакетное обучение.

Сразу Как и тренироваться, понятие пакетной обработки также может быть приложение ВСлужить ML Модель. существоватьздесь Служить ML Модель означает использование машины Модельно незрячие изданные точки для прогнозирования. Это также называется рассуждением. В настоящее время существующую Модель Служить можно разделить на два типа: существующая линия Служит. ьисуществовать линия Служить, чья серединасуществовать линия Служить нуждается сущ есть Моделиданные Делайте прогнозы, когда точки совпадают (существоватьздесь Мы не можем позволить себе задержек) , в автономном режиме Служить сначала необходимо собрать пакет данных точек, а затем применить Модель запуска пакета для получения прогнозов. пожалуйста, обрати внимание,существуют Нет.,Мы можем выбрать некоторую задержку.

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

Давайте попробуем использовать картинку ниже. Подведем итоги и разберемся в предыдущем обсуждении:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-MzTZHWke-1681705163545)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/95a14b78-836f-49f9-9709-4c20f0a2152e.png)]

Эта картинка описывает AI задняя требования, а также различные параметры, которые могут повлиять на ваш выбор решения. В нашем следующем разделе «Волясуществоватьсередина» обсуждаются все доступные аспекты и варианты Долженасередина.

поэтому,нассуществовать Производствосерединаиз DL выполнитьсерединав целом Можетпопытаться найтиприезжать四种主хотетьтипизрешение:

  • Служба веб-API
  • онлайн-обучение
  • Пакетное прогнозирование
  • AutoML

Давайте изучим каждый из них подробно.

Служба веб-API

У нас есть Модель, Должен Модель Зависит отзадняя часть из отдельного скрипта тренироваться, затем сохранить для Модели, затем развернуть для базы В API из Служить. В настоящее время мы существуем и ищем решение, которое дает результаты по требованию, но тренируется в автономном режиме (не существует, отвечая на запросы клиентов из этой части кода за пределами области выполнения). Web API Ответьте на один запрос и получите один результат за раз.

Покадля,Этосуществовать Производствосерединаразвертывать DL Самый распространенный метод, поскольку он позволяет ученым проводить точные итренировки в автономном режиме и использовать короткие сценарии развертывания для создания API。 существующая книга середина, мы в основном проводили такого рода развертывания.

онлайн-обучение

проходитьзадняя часть содержит прогноз по требованию из другой формы даонлайн-обучения. Но да, существует этот метод середина, научиться выполнять Служить во время выполнения скрипта, поэтому Должен Модель продолжает меняться с каждым связанным запросом. хотя этот подход является динамичным и с меньшей вероятностью устареет, но, как правило, он не так хорош, как статический. Web API точный. онлайн-обучение также выдает по одному результату за раз.

существовать本главасередина,Мы продемонстрировали пример онлайн-обучения. существуют следующиеизпартсередина,нас Можетниже载有助Инструмент онлайн-обучения.

Пакетное прогнозирование

существоватьэтот种методсередина,Многие прогнозы делаются одновременно и сохраняются в памяти Ссуществоватьлужить,随час Можетсуществоватьиспользоватьсемья需хотетьчасизвлекатьииспользовать。 Но да, сделайте метод статического тренирования, этот метод позволяет тренировать модель в автономном режиме, поэтому похоже на: Web API, детренироваться обеспечивает более высокую точность.

Другими словами, пакетное прогнозирование Можетпониматьдля Web API из Пакетная версия. Но да, API Эти прогнозы не представлены. Напротив,Предскажите даотданные Библиотекасередина магазин и получитеиз.

AutoML

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

Auto ML да Что-то вроде Пакетное Метод прогнозирования без ручного вмешательства. Таким образом, конвейер данныхпрохождения доставлен, а прогнозы регулярно обновляются. Следовательно, этот метод более эффективен, чем Пакетное. Метод прогнозирования предоставляет более свежие прогнозы.

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

Популярные инструменты для развертывания ML в производстве

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

让насначинатьобсуждатьcreme

creme

cremeдаодин Python Библиотека, позволяет нам эффективно осуществлять онлайн-обучение. существоватьпрактические исследованияcremeДо,Давайте вкратце обсудим само онлайн-обучение:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-mVcLeWWL-1681705163545)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/adfb193f-163c-4f21-9dae-af3df778d861.png)]

существоватьонлайн-обучениесередина,машинное Обучение Модель обучает только один экземпляр за раз для тренироваться, а не требует обязательного набора данных для тренироваться (это также называется пакетным обучением). Для того, чтобы ценить онлайн-обучениеизиспользовать, важно понимать недостатки пакетного обучения:

  • существует производство середина, нам нужны новые данные, которые будут существовать с течением времени ML Модельруководить重новыйтренироваться。 Пакетное обучение вынуждает нас делать это, но за это приходится платить. Цена — это не только вычислительные ресурсы, но и то, что голова начинает перезагружаться. от Начать с самого началатренироваться Модельсуществоватьпроизводственная средасередина не всегда полезна.
  • Теги dataizFeatures со временем меняются. Пакетное обучение не позволяет нам поддерживать динамические функции и метки. ML Модель.

Именно здесь нам и нужно использовать онлайн-обучение, и мы можем сделать следующее:

  • Тренироваться только по одному экземпляру за раз ML Модель. Поэтому нам, Воля, не нужно много данных, чтобы тренироваться. ML Модель. Можетиспользовать Можетиспользоватьизданныенемедленноверноего поведениетренироваться。
  • использоватьдинамические функциии Этикеткатренироваться ML Модель.

онлайн-обучение имеет несколько других названий,Даэто们Всеиметь Взаимно同изделатьиспользовать:

  • постепенное обучение
  • последовательное обучение
  • итеративное обучение
  • основное обучение

как упоминалось ранее,cremeдаиспользовать Восуществлятьонлайн-обучениеиз Python библиотека. бронироватьсуществовать ML Ящик для инструментов серединада очень полезная вещь, особенно дасуществовать производственную ручку. средачас。 cremeк scikit-learn(Это Python середина非常поток ХОРОШОиз ML Вдохновленный Библиотека)из, Виспользовать очень легко. хотеть全面Понятно解creme,建议тысуществоватьэта страницаначальство查смотретьcremeизчиновник GitHub Библиотека хранения.

Хватит говорить!,первый Установитьcreme。 Это можно сделать с помощью следующей команды:

Язык кода:javascript
копировать
pip install creme

хотетьполучатьcremeиз最новый版本,Вы можете использовать следующие команды:

Язык кода:javascript
копировать
pip install git+https://github.com/creme-ml/creme
# Or through SSH:
pip install git+ssh://git@github.com/creme-ml/creme.git

Этот выполняет следующий шаг, давайте посмотрим на простой пример:

  1. наспервыйотcremeмодульруководить Некоторый必хотетьизимпортировать:
Язык кода:javascript
копировать
from creme import compose
from creme import datasets
from creme import feature_extraction
from creme import metrics
from creme import model_selection
from creme import preprocessing
from creme import stats
from creme import neighbors

import datetime as dt

пожалуйста, обрати внимание,cremeиз命имя约定иsklearnБиблиотекаиз命имя约定Взаимно似,Чтобы облегчить миграцию.

  1. Затем,нас Воляcremeмодуль本身Предоставить изданныенаборизвлекатьприезжатьданныепеременнаясередина:
Язык кода:javascript
копировать
data = datasets.Bikes()

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

хотяданныенабор ВключатьсуществоватьcremeБиблиотекасередина,ноты можешьсуществоватьэта страницаначальство Понятно解связанныйэтотданныенабориз Подробнее.

  1. Следующий,насиспользоватьcremeСоздание конвейера,Как показано ниже:
Язык кода:javascript
копировать
model = compose.Select("humidity", "pressure", "temperature")
model += feature_extraction.TargetAgg(by="station", how=stats.Mean())
model |= preprocessing.StandardScaler()
model |= neighbors.KNeighborsRegressor()

Уведомлениеиспользовать|=и+=оператор。 cremeделатьиспользоватьэтот些операторстановитьсядля Может能,Это Создание верных данных о конвейере очень интуитивно понятно. Следуя команде, мы можем получить подробное представление фронта существования из блока кода середина, построенного из конвейера:

Язык кода:javascript
копировать
model

начальствоодин条Заказиз输вне Как показано ниже:

Язык кода:javascript
копировать
Pipeline([('TransformerUnion', TransformerUnion (
 Select (
 humidity
 pressure
 temperature
 ),
 TargetAgg (
 by=['station']
 how=Mean ()
 target_name="target"
 )
 )), ('StandardScaler', StandardScaler (
 with_mean=True
 with_std=True
 )), ('KNeighborsRegressor', KNeighborsRegressor([]))])

Мы также можем визуально увидеть конвейер приезжать Должен с помощью следующей команды:

Язык кода:javascript
копировать
model.draw()

Эта Воля выдаёт следующий график:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-kSLTgYBD-1681705163545)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/385f0fc6-4b0a-46d6-8414-c73c8c3a4c38.png)]

  1. наконец,насбегатьтренироватьсяикданныенабориз Каждый 30,000 Интервал строки получает метрику оценки. На рынке существует производитель Служить, этот код Воля приводит к каждому 1 Протокол проведения Пакетного прогнозирование:
Язык кода:javascript
копировать
model_selection.progressive_val_score(
 X_y=data,
 model=model,
 metric=metrics.RMSE(),
 moment='moment',
 delay=dt.timedelta(minutes=1),
 print_every=30_000
)

поэтому,cremeв силу ясностиизграмматикаи Функция отладки,Может非常轻松地существовать Производствосерединасоздавать Пакетное прогнозированиеионлайн-обучениеразвертывать。

Сейчас мы с Воля обсуждаем еще один популярный инструмент – Airflow.

Airflow

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

Основные преимущества этого,ориентированный ациклический графDAG)начальство表示из任务Может轻松地分布существовать Можетиспользовать资源(Обычно называетсядля工делатьустройство)начальство。 Это также упрощает визуализацию всего рабочего процесса, что очень полезно, особенно если рабочий процесс очень сложен. Если вам нужно освежить знания DAG,пожалуйстадоступэта страницасерединаиз文глава。 Когда эта воля становится яснее, если вы быстро посмотрите на приезжать в эту выборку.

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

  • труба сбора данных
  • конвейер предварительной обработки данных
  • делатьданные Можетиспользовать В ML Модель
  • ML Модельизтренироватьсяи Конвейер оценки
  • Модельизразвертывать
  • Модель монитора и другой контент

Теперь давайте продолжим следующие строки для установки Airflow:

Язык кода:javascript
копировать
pip install apache-airflow

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

После завершения установки вы можете вызвать Airflow из админ-панели и просмотреть ее из DAG список,И действительно, он управляет и запускает множество других полезных функций.,Как показано ниже:

  1. для этого необходимо сначала инициализировать данные Библиотека:
Язык кода:javascript
копировать
airflow initdb
  1. тыотвечать ДолженсмотретьприезжатьсуществоватьSQLite3данные Библиотека Создано Понятно许多表。 В случае успеха вы сможете начать с помощью следующей команды Web Служитьустройство:
Язык кода:javascript
копировать
airflow webserver

существовать Браузерсередина Открытьhttp://localhost:8080。 Вы увидите экран прибытия, как показано на следующем скриншоте:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-LmL9Frqg-1681705163546)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/5f932f02-915b-4c68-84fc-1b54864cb4fe.png)]

Предлагается множество примеров DAG. Вы можете попробовать запустить их для короткого воспроизведения!

Теперь давайте обсудим очень популярный инструмент под названием AutoML.

AutoML

DL или AI Решения не ограничиваются Всуществовать Jupyter Ноутбук середина, построенный промышленным приложениемсерединаиз ультрасовременной точной модели. форма AI Решение требует нескольких шагов: сначала нужно собрать исходные данные, воляданные конвертировать для доступности в формате модели прогноза, создателя. Вать прогноз, строить на основе приложения Модель, а также выпускать середину монитора и обновлять Модель. AutoML Цель состоит в том, чтобы автоматизировать этот процесс путем существования автоматизированных задач перед развертыванием. Обычно AutoML В основном даданная оркестровка и байесовская оптимизация гиперпараметров. AutoML иногда Только означает полностью автоматизированныйизканалы обучения。

H2O.ai提供Понятноодин Можетиспользовать В AutoML из著имя Библиотека,сказатьдляH2O.AutoML。 Чтобы установить его, мы можем установить его с помощью следующей команды:

Язык кода:javascript
копировать
# Using Conda installer
conda install -c h2oai h2o

# Using PIP installer
pip install -f http://h2o-release.s3.amazonaws.com/h2o/latest_stable_Py.html h2o

H2O.AutoMLизграмматикаи Что他поток ХОРОШОиз ML Библиотеки похожи, поэтому их очень легко понять.

Внедрить среду веб-презентаций DL

сейчассуществовать,Мы, Воля, углубимся в создание примера создания приложения.,Долженприложениесуществоватьзадняя частьиспользоватьонлайн-обучение。 Наша база Воля В Cleveland Набор данных создан может прогнозировать сердечно-сосудистые заболевания. Затем мы Воля Воля эту Модель развернём приезжать базу в облачный контейнер и з Служить Heroku。 наконец,нас Воля Демо Долженприложениеизонлайн-обучение Функция。

ты можешьпроходитьздесьПриходитьпопытаться найтиприезжатьсвязанный Heroku из Подробнее.

Давайте перечислим наши изшаги, связанные с Волей:

  1. существовать Jupyter Ноутбук По настройке прогнозную модель。
  2. для Web приложение Создайте предсказуемое сохранение из Модельиззадняя часть。
  3. для веб-приложения Создание интерфейса,Долженвнешний интерфейссуществовать Модельначальствовызовпостепенное обучение。
  4. существовать Служитьустройство端逐шаг Даженовый Модель.
  5. Воляприложениеразвертыватьприезжать Heroku。

Мы Воляот Нет.нольшагначинать; Также Сразуда сказал, соблюдайте набор данных.

UCI Набор данных по сердечно-сосудистым заболеваниям содержит 303 образцы, каждый образец имеет 76 атрибуты. Но да, большая часть исследовательской работы по набору данных является серединасуществовать. 13 атрибутыиз Кливлендданныенабориз简化版本начальство,Как показано ниже:

  • Годвозраст
  • пол
  • Виды боли в груди:
    • Типичная стенокардия
    • атипичная стенокардия
    • не стенокардия
    • Бессимптомный
  • артериальное давление в состоянии покоя
  • Холестерин сыворотки, мг/дл
  • уровень глюкозы в крови натощак >120 mg/dl
  • Результаты ЭКГ покоя:
    • нормальный
    • страдает от ST-T Волновая аномалия (Т Волновая инверсия и/или ST Увеличение и уменьшение >0.05 mV)
    • в соответствии с Estes по критериям, указывающим на возможную или определенную гипертрофию левого желудочка.
  • Достичь максимальной частоты сердечных сокращений
  • Стенокардия, вызванная физической нагрузкой
  • Oldpeak: Движение вызывает сфазировку покоя из-за торможения ST
  • Пик движения из сегмента ST из наклона
  • Флуоресцентное окрашивание и количество крупных кровеносных сосудов (0-3)
  • Thal: 3: нормальный; 6: Исправленный дефект 7: Обратимый дефект;

наконецвстреча有один列,Этонас Воляхотеть预测из Цель。 Эта Воля позволяет классифицировать прежние проблемы у существующих нормальных пациентов и между пострадавшими пациентами.

ты можешьсуществоватьэта страницаначальство Понятно解связанный Кливлендданныенабориз Подробнее.

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

Постройте прогнозную модель

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

Шаг 1 – Импортируйте необходимые модули

Сначала импортируем необходимую из Библиотеку:

Язык кода:javascript
копировать
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
np.random.seed(5)

насуже经импортировать Понятноpandasиnumpyмодуль。 Наряду с этим, мы начинаем с scikit-learn Библиотекасерединаимпортировать Понятноtrain_test_splitметод,В помощь нам Воляданные наборы быстро разделили длятренироваться тестовый раздел.

Шаг 2 – Загрузите набор данных и наблюдайте

Загрузим набор данных,假设этохранилищесуществоватьимядляdataизпапкасередина,Долженпапкаи Включать Jupyter Каталог записной книжки находится на том же уровне каталога:

Язык кода:javascript
копировать
df = pd.read_csv("data/heart.csv")

нас ВолябыстрыйнаблюдатьDataFrameк查смотретьданет所有列均уже正确импортировать:

Язык кода:javascript
копировать
df.head(5)

Этот серединный блокнот Jupyter "Волясуществовать" выдает следующий результат:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-MJiDLVQk-1681705163546)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/1f9f805b-e515-4714-9e23-d04c4b7fd49c.png)]

Мы можем наблюдать за этим 14 столбцы и проверьте, правильно ли они были импортированы. база本изисследовательский анализ данныхEDA)Воляпоказывать Долженданныенабор不Включатьлюбой缺失ценить。 Но да, оригинал из UCI Набор данных Кливленда действительно содержит нашу версию использования, и вместо отсутствующих значений версия Должен была предварительно обработана и легко доступна в этой форме в Интернете. Вы можете найти копию этой главы на GitHub.

Шаг 3 – Изолируйте целевые переменные

сейчассуществовать,Мы воляотданные наборы середина объединяем целевую переменную,Как показано ниже:

Язык кода:javascript
копировать
X = df.drop("target",axis=1)
y = df["target"]

Следующий,Наши возможности Воляверно масштабируются.

Шаг 4 – Выполните масштабирование функций

Как вы можете существовать на шагизданном установленном образце середина, наблюдаемом приездеиз,Значения столбца тренироваться серединаиз не находятся в том же или сопоставимом диапазоне, что и существующие. Мы выполняем масштабирование столбцов «Волясуществовать», чтобы они достигли равномерного распределения по диапазону.,Как показано ниже:

Язык кода:javascript
копировать
from sklearn.preprocessing import StandardScaler

X = StandardScaler().fit_transform(X)

Цельсуществовать0к1изв пределах досягаемости,поэтому不需хотеть缩放。

Шаг 5. Разделите набор данных на тестовые и обучающие наборы данных.

Затем,использоватьподизкод ХОРОШОРазделите набор данных на части обучения и тестирования.:

Язык кода:javascript
копировать
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.20,random_state=0)

20% коллекции мы выделили на тестовые проекты.

Шаг 6. Создайте объект нейронной сети в sklearn.

Следующий,наспроходить实пример化MLPClassifierвернослонизновыйвернослон Приходитьсоздавать分добрыйустройство Модельиз实пример:

Язык кода:javascript
копировать
from sklearn.neural_network import MLPClassifier

clf = MLPClassifier(max_iter=200)

насуже Воля Максимальное количество итерацийнастраиватьдля200。 Если конвергенция произойдет раньше, ее можно не достичь.

Шаг 7 – Проведение обучения

наконец,насруководитьтренироватьсяи Уведомлениенаблюдатьприезжатьизметодиз Точность:

Язык кода:javascript
копировать
for i in range(len(X_train)):
    xt = X_train[i].reshape(1, -1)
    yt = y_train.values[[i]]
    clf = clf.partial_fit(xt, yt, classes=[0,1])
    if i > 0 and i % 25 == 0 or i == len(X_train) - 1:
        score = clf.score(X_test, y_test)
        print("Iters ", i, ": ", score)

Вывод предыдущего блока кода в блокноте Jupyter выглядит следующим образом:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-KYIrNdl0-1681705163546)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/83f2a674-113d-4694-ba19-9ba8dc7cc57c.png)]

Мы можем посмотреть приезжать, существоватьверно изданные эпизоды серединаиз всех 241 После выполнения тренироваться на нескольких образцах ожидаемая точность достигает уровня приезжать. 83.60%。 Уведомление前面код块серединаизpartial_fitметод。 Это Модельиз Метод, который позволяет Воля просто из выборки приезжать Модельсередина. 实际начальство,Даже常использоватьизfitметоддаpartial_fitметодиз Упаковкаустройство,Перебрать весьданныенаборисуществовать Каждыйитерациисерединатренироватьсяодинобразцы. этоданасиспользовать scikit-learn Библиотекаруководитьизпостепенное обучение Демо из Самое полезноеиз Часть №1.

для Чтобы быстро просмотреть Модель, предоставляющую выходные данные в формате, мы генерируем следующий блок кода:

Язык кода:javascript
копировать
# Positive Sample
clf.predict(X_test[30].reshape(-1, 1).T)

# Negative Sample
clf.predict(X_test[0].reshape(-1, 1).T)

Получите следующий вывод:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-Scr4dBMU-1681705163546)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/7af1eb56-d3b4-4e26-a4fc-804077759dcd.png)]

Уведомление,预测输внедля0изобразец представления Долженлюди没有心脏病,и输внедля1изобразец представления Долженлюдистрадает от Сердечные заболевания.

Теперь существуем, мы Воля начинаем Воля это Jupyter Преобразование ноутбука для может быть выполнено по требованию постепенно. обучениеиз Скрипт。 Но да, мы, Воля, сначала строим фронтенд Долженпроектиз, чтобы можно было отзаднюю часть Понять потребности.

Внедрить фронтенд

Мы в «Волясуществоватьздесь» придерживаемся подхода «снизу вверх» и начинаем с разработки примера интерфейса приложения. этот样做только еслидля Понятнопониматьдля什么нассуществоватьзадняя часть сценария середина, некоторые методы написания серединаиз и методы предыдущих глав разные. Очевидно, что при разработке актуального приложения существуют, прежде всего, создательница часть Скрипт。

У нас Воля очень упрощенный фронтенд,Включает только одну кнопку вызоваприложения увеличения тренироваться и один заполнитель.,Используйте B, чтобы отобразить показатель точности тренироватьсяиз Моделиз для заданного количества образцов.

Давайте кратко рассмотрим, что мы строим:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-mwrmzohd-1681705163552)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/7e081a94-5c7d-4e85-a20a-e1576ec3cea9.png)]

Вы можете из нашей Воля захотеть собрать изприложениеиз. На скриншоте выше середина поясняется, что у нашей Воля есть две кнопки — одна. Волятренированные данные коллекция серединаизтренироваться образец серединаиз 25 образцы добавить приезжать частично тренироватьсяиз Модельсередина, еще один Волятренироваться сбросить для 0 образцы (т.е. 实际начальство,существоватьвыполнитьсерединаиспользовать 1 образцы, которых следует избегать от 0 Вызывает распространенные ошибки, но эта демонстрация малоэффективна.

让нас Создайтеимядляappиз Flask Папка проекта. Затем,нассоздаватьtemplatesпапкаисуществовать Чтосерединасоздаватьindex.html。 существоватьappпапкасерединасоздавать另одинимядляapp.pyиздокумент。 Мы Волясуществовать эту папку серединасоздавать больше файлов для существования Heroku Развертывание включено.

нас不встреча编写index.htmlдокументизвеськод,Данас Волясмотретьсмотретьпроходить Ajax Триггерный вызовзадняя часть API из двух функций.

ты можешьсуществоватьэта страницасерединапопытаться найтиприезжатьвесьизкод。

наблюдатьindex.htmlсерединаиз109к116ХОРОШО:

Язык кода:javascript
копировать
.... 
$("#train-btn").click(function() {
     $.ajax({
         type: "POST",
         url: "/train_batch",
         dataType: "json",
         success: function(data) {
             console.log(data);
....

фронт из JavaScript(jQuery)код片段существоватьиметьtrain-btn ID изкнопка Создано Понятноclickиметь дело сустройство。 этосуществоватьзадняя частьвызов/train_batch API。 нас Волясуществоватьразвиватьзадняя частьчассоздаватьэтот API。

этотдокументсередина另один有趣изкод块да138к145ХОРОШО:

Язык кода:javascript
копировать
....
$("#reset-btn").click(function() {
     $.ajax({
         type: "POST",
         url: "/reset",
         dataType: "json",
         success: function(data) {
             console.log(data);
....

существоватьздесь,нассуществоватьиметьreset-btn ID изкнопканачальствонастраивать Понятноclickиметь дело сустройство,к К/reset API Сделайте запрос. Этопостепенное обучениеиз Этот аспект легко забывается, он требует меньше тренироваться. также Сразудаобъяснять,это Волятренироватьсяназадиз Модельперезагрузитьдляеще неттренироватьсясостояние。

Теперь мы знаем, что нам нужна существующая часть для создания API. Давайте существовать, следующая часть середина их построит!

Внедрить серверную часть

существовать Этот разделсередина,нас Волясоздаватьнеобходимыйиз API А также с помощью скрипта В Демонстрация из Служить. редактироватьпроект根папкасерединаизapp.pyдокумент:

  1. Во-первых, наш скрипт Воляверно выполняет некоторые необходимые операции импорта:
Язык кода:javascript
копировать
from flask import Flask, request, jsonify, render_template

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier

np.random.seed(5)

пожалуйста, обрати внимание,этот处изимпортироватьинассуществовать Jupyter Блокнот серединасоздавать Модель очень похожа при импорте. Это Зависит от ВМы только Воля Jupyter Преобразование кода ноутбука в Взадняя часть Демонстрация из Служить объясняется тем, что это инструмент-скрипт.

  1. Затем,нас Воляданныенабор加载приезжать pandas DataFrameначальство:
Язык кода:javascript
копировать
df = pd.read_csv("data/heart.csv")
  1. Мы Воля быстро просматриваем остальную часть кода, существуем его середина разделенного набора данных, масштабируем столбцы и существуем определенное количество из выборки на тренироваться Модель:
Язык кода:javascript
копировать
X = df.drop("target",axis=1)
y = df["target"]

X = StandardScaler().fit_transform(X)
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.20,random_state=0)

clf = MLPClassifier(max_iter=200)

for i in range(100):
    xt = X_train[i].reshape(1, -1)
    yt = y_train.values[[i]]
    clf = clf.partial_fit(xt, yt, classes=[0,1])
    if i > 0 and i % 25 == 0 or i == len(X_train) - 1:
        score = clf.score(X_test, y_test)
        print("Iters ", i, ": ", score)

Уведомление,существоватьфронт изкодсередина,нассуществоватьданныенаборсерединаиз100образецначальствотренироваться Модель. этот Воляделать Модель Взаимнокогдаточный,Но очевидно, что есть куда расти,нас Воляиспользовать/train_batch API Чтобы вызвать это улучшение, API Волядля Модельтренироватьсяувеличение 25 образцы.

  1. Давайте настроим некоторые переменные для использования скрипта.,к及实пример化FlaskСлужитьустройствовернослон:
Язык кода:javascript
копировать
score = clf.score(X_test, y_test)

app = Flask(__name__)

start_at = 100
  1. сейчассуществовать,нас Волясоздавать/train_batch API, как показано ниже:
Язык кода:javascript
копировать
@app.route('/train_batch', methods=['GET', 'POST'])
def train_batch():
    global start_at, clf, X_train, y_train, X_test, y_test, score
    for i in range(start_at, min(start_at+25, len(X_train))):
        xt = X_train[i].reshape(1, -1)
        yt = y_train.values[[i]]
        clf = clf.partial_fit(xt, yt, classes=[0,1])

    score = clf.score(X_test, y_test)

    start_at += 25

    response = {'result': float(round(score, 5)), 'remaining': len(X_train) - start_at}

    return jsonify(response)

train_batch()функцияпроходить25образецилиданныенабориз Что余образец Приходить增加верно Модельизизучать。 он возвращает набор данных 20% Тестовый сплит по моделиизкогда прежний результат. Еще раз отметим, что для 25 итерацииизpartial_fitметодизиспользовать法。

  1. Следующий,нас Волясоздавать/reset API,это Воля Модельперезагрузитьдляеще неттренироватьсясостояние:
Язык кода:javascript
копировать
@app.route('/reset', methods=['GET', 'POST'])
def reset():
    global start_at, clf, X_train, y_train, X_test, y_test, score
    start_at = 0
    del clf
    clf = MLPClassifier(max_iter=200)
    for i in range(start_at, start_at+1):
        xt = X_train[i].reshape(1, -1)
        yt = y_train.values[[i]]
        clf = clf.partial_fit(xt, yt, classes=[0,1])

    score = clf.score(X_test, y_test)

    start_at += 1

    response = {'result': float(round(score, 5)), 'remaining': len(X_train) - start_at}

    return jsonify(response)

Должен API Вернитесь снова к счету после сброса из Модель. Если предположить, что наборы данных существуют, категория серединада сбалансирована, этого следует ожидать от Должендаиз (очень плохо).

  1. Теперь давайте напишем код, чтобы запустить это приложение из Flask Служить:
Язык кода:javascript
копировать
@app.route('/')
def index():
    global score, X_train
    rem = (len(X_train) - start_at) > 0

    return render_template("index.html", score=round(score, 5), remain = rem)

if __name__ == '__main__':
    app.run()
  1. После завершения этой операции,нас Подготовитьпроходитьотконсольбегать Долженприложение Приходить测试Долженприложениеданетнормальныйтранспорт ХОРОШО. дляэтот,Пожалуйста, откройте новое окно терминала.,ЗатемсуществоватьappОглавлениесерединавходитьниже Заказ:
Язык кода:javascript
копировать
python app.py

Служитьустройствобегатьназад,ты можешьсуществоватьhttp://localhost:5000начальство查смотретьприложение.

наконец,нас Разверните проект в Heroku。

Разверните проект в Heroku

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

  1. первый,доступздеськполучать Heroku из Экран входа в систему. Если у вас еще нет учетной записи, вы можете бесплатно завершить процесс регистрации, чтобы создать:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-9u0KIEMS-1681705163553)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/ec63d54a-25e8-40aa-bd4c-c8b071847486.png)]

  1. сейчассуществовать,Мы Воля СоздаемProcfileдокумент。 существоватьэтотшагсередина,нассуществоватьappОглавлениесередина СоздайтеимядляProcfileиз空白документ。 После завершения создания мы добавляем в него следующие строки:
Язык кода:javascript
копировать
web: gunicorn app:app

Должендокументсуществовать Разверните проект в Heroku изпроцесссерединаиспользовать。 Предыдущая строка указывает Heroku системаиспользоватьgunicornСлужитьустройствоибегатьимядляapp.pyиздокумент。

  1. Затем,нас冻结проектизнуждаться。 Heroku 寻попытаться найтиrequirements.txtдокумент Приходить自动скачатьи Установитьпроектнеобходимыйиз Сумка。 Чтобы создать требуемый список, введите следующую команду в существующем терминале серединаиспользовать:
Язык кода:javascript
копировать
pip freeze > requirements.txt

этот Волясуществоватьпроектиз根папкасерединаимядляrequirements.txtиздокументсерединасоздавать Сумкасписок。

Возможно, вы захотите сохранить некоторые пакеты,делать Что不Включатьсуществоватьrequirements.txtдокументсередина. иметь дело сэтотдобрыйпроектизодин好методдаиспользоватьвиртуальная среда,Чтобы среда середина предоставляла только необходимые пакеты,поэтомуrequirements.txtтолько Включатьэто们。 Однако такое решение не всегда может быть осуществимо. существоватьэтот种случай,пожалуйста随час手动редактироватьrequirements.txtиудалить Включатьипроектне имеющий отношенияиз Сумкаиз ХОРОШО.

Долженпроектиз Оглавление结构когда前отвечать Как показано ниже:

Язык кода:javascript
копировать
app/
---- templates/
-------- index.html
---- Procfile
---- requirements.txt
---- app.py
  1. Теперь существует, нам нужно установить существующее в локальную систему Heroku CLI。 в соответствии сздесьПредоставить изобъяснять明существоватьсистеманачальство Установить Heroku。
  2. Следующий,нас Волясуществовать Оглавлениеначальствоинициализацияgit。 дляэтот,пожалуйстасуществоватьпроектиз根Оглавлениесерединаиспользоватьниже Заказ:
Язык кода:javascript
копировать
git init
  1. Затем,нассуществоватьпроектначальствоинициализация Heroku Управление версиями. Открываем окно терминала и переходим в каталог жильцов. использоватьниже Заказинициализация Heroku для Долженпроект Предоставить из版本管理устройство,И воля его регистрация приезжать ваш бывший логин изпользователя середина:
Язык кода:javascript
копировать
heroku create

Должен команда Воляпроходить показать Воля ведет ваш изпроектиз URL Заканчивать. 随之показывать.git URL,Должен URL Отслеживайте релизы проектов с В. ты можешьотэтот.git URL Push/Pull, чтобы внести изменения в проект и инициировать его повторное развертывание. Выход Воля Похоже на: Следующее:

Язык кода:javascript
копировать
https://yyyyyy-xxxxxx-ddddd.herokuapp.com/ | https://git.heroku.com/yyyyyy-xxxxxx-ddddd.git
  1. Следующий,нас Волядокументдобавить вприезжатьgitи推送приезжать Heroku。 Теперь вы можете воля подать файл push приехать Heroku gitпроектруководитьразвертывать。 Мы используем следующие команды:
Язык кода:javascript
копировать
git add .
git commit -m "some commit message"
git push heroku master

Это волясоздывать развертывание, вы видите, Воля приезжает очень долго из выходного потока. изEvent из журналов, возникающих во время потокового развертывания дапроектов, в том числе при установке пакетов, определении проекта и запуске сценариев прослушивания. После получения сообщения об успешном развертывании, вы Воля можете существовать на шаге серединаиз. Heroku Предоставить из URL Посмотреть вас на изприложении. Если вы его не помните, вы можете запустить его с помощью следующей команды в браузере терминала существования середина Открыть:

Язык кода:javascript
копировать
heroku open

Теперь существует, вам следует Долженсуществовать браузер по умолчанию середина, чтобы увидеть приезжать с развернутым кодом в новом окне или вкладке Открыть. Если возникнет какая-либо проблема, вы можете Воля существовать. Heroku Панель управлениясерединасмотретьприезжатьразвертывать日志,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-9Bss8Uwt-1681705163553)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/11361907-2e81-41e5-ab97-90f7bd2cf2cf.png)]

Этосуществовать В этой главе представлены реальные снимки экрана неудачной сборки кода. Вы сможете найти ошибку в конце журнала.

Если сборка развернута успешно, вы увидите сообщение об успешном развертывании в конце журнала «Волясуществовать».

Меры безопасности, технологии мониторинга и оптимизация производительности

В этом разделе середина мы, Воля, обсуждаем возможную интеграцию приезжать производства серединаиз DL Решения серединаиз мер безопасности, технологий мониторинга и оптимизации производительности. Эти функции для зависимостей обслуживания AI задняя Частичные решения имеют решающее значение. Хотя наше предыдущее существование из главы середина обсуждалось DL Продвигается из методов безопасности, но наше обсуждение Воля может быть верным AI задняя часть представляет угрозу безопасности.

верно AI задняя часть Одна из самых больших угроз безопасности исходит от изданного шума. существовать Производствосерединаиспользовать AI из大多数методсередина,Регулярный осмотртренироватьсяданныенаборсерединаданет有новыйтипиз噪声非常重хотеть。

для Все лайки Python pickleБиблиотекаизразвиватьлюди员Приходитьобъяснять,Очень важная информация:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-0q4j0vFz-1681705163553)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/c8e91eed-3467-461c-8b35-17eaee574e35.png)]

начальство面из屏幕截картина Приходить自чиновник Python документ

для демонстрирует простой пример,Описаниедля Что существует ПРОИЗВОДСТВО середина Проведение травления может быть опасным,Рассмотрим следующий код Python:

Язык кода:javascript
копировать
data = """cos
    system
    (S'rm -ri ~'
    tR.
"""

pickle.loads(data)

фронт изкод所做изочень просто-это试картина清除тыиз主Оглавление。

ВНИМАНИЕ: Любой, кто использует приведенный выше код, несет полную ответственность за результаты своей работы.

фронт из示примери Взаимно关警告暗示Понятно AI задняя часть почти каждой автоматизированной системы серединаиз общих угроз безопасности – ненадежный ввод из опасностей. поэтому,Важная информация для правильной проверки существования возможного ввода моделисередина из любых данных (независимо от того, существует ли тренироваться также для проверки середина),кубеждаться不Уилл верносистема造становитьсялюбой严重вопрос。

Также важно осуществлять постоянный контроль за правильностью производства серединаиз Модель. Модель часто устаревает и рискует через некоторое время дать устаревшие прогнозы. Важная информация для проверки AI Модель делает прогнозы на основе корреляции. Рассмотрим человека, который знает только CD-ROM «Флоппи» из люди. Время идет, мы думаем приехать USB накопитель и твердотельный диск. Этот человек Воля не способен принять какое-либо мудрое решение с новейшим оборудованием. Аналогично, из 2000 Год代первый разначинать Иголкаверно​​текстизменять储тренироватьсяизобработка естественного языкаNLP)Модель Воля无法понимать有люди问Can you please WhatsApp me the wiki link for Avengers: Endgame?изверноразговаривать。

наконец,тынравиться何才能верно AI задняя часть оптимизации производительности?

Web Разработчиков больше всего волнует этот вопрос. Все должно быть произведено молниеносно. Ускорить производствосередина AI Модель скорости из Некоторые советы заключаются в следующем:

  • Разложение воляданных множеств позволяет делать точные прогнозы с минимальным количеством признаков. Это Зависит Несколько алгоритмов (таких как анализ главных компонентов и другие эвристики) выполняют выбор признаков и основную идею. в целом,Не все входные данные серединаизданной системы связаны с,или лишь немного связано с даизом,Делать прогнозы на основе ВДолженданные.
  • учитывать Воля Модельхостингсуществовать启использовать Понятно自动缩放Функция изодиниз Функция强大изоблако Служитьустройствоначальство。 Эта воля гарантирует, что ваша из Модель не будет тратить ресурсы впустую, когда существующие страницы веб-сайта служат Служить, а будет обрабатывать только базовые функции. AI запрос. Автоматическое масштабирование Воля решает задний часть Внезапное увеличение рабочей нагрузки или резкое уменьшение проблемы.
  • Онлайн-обучение происходит автоматически ML Метод медленный из-за установленного размера. Убедитесь, что у вас есть соответствующие ограничения, которые не позволят системе динамического обучения взорваться.

Подвести итог

существовать本главасередина,мы представили Можетиспользовать Всуществовать Производствосерединаразвертывать DL Модельизметод。 Здесь мы подробно рассмотрели различные методы и некоторые известные инструменты, которые помогают упростить управление производственными развертываниями. мы представилииспользовать Flask иsklearnБиблиотекаруководитьонлайн-обучениеиз示пример。 Мы также обсуждаем условия после развертывания и примеры некоторых наиболее распространенных задач.

существуют Следующая глава середина, мы Воляиспользовать интегрировать приезжать веб-сайт серединаиз Dialogflow Демо-терминал приезжать пример терминала приложение (Чат поддержки клиентов робот).

12. Создавайте веб-приложения E2E, используя DL API и чат-бот службы поддержки клиентов.

существовать本главасередина,Мы, Воля, суммировали несколько инструментов и методов, которые существующая середина узнала в первых нескольких главах этой книги.,и介绍Некоторыйвне色изновыйинструментитехнология。 В этой главе рассматривается очень важный аспект вашего бизнеса — поддержка клиентов. Для нового бизнеса, поддержка клиентов постоянно исчерпана, и за ней трудно успевать. в целом,проходитьссылкадокументиликомпаниясуществовать Чтовеб-сайтначальство Предоставить изодин组常见вопрос解答,Легко отвечает на вопросы клиентов,Да客семьяв целом不встреча仔细阅读это们。 Поэтому лучше иметь уровень автоматизации, середина которого наиболее распространена среди запросов Воля Зависит. от чатробота, чтобы ответить, Должен чатроботсуществовать день середина всегда доступна и отзывчива.

В этой главе обсуждается, как использовать Dialogflow создать Chatrobot для решения общих вопросов поддержки клиентов и способов его интеграции с базой данных для воля. Django извеб-сайтсередина. Кроме того, чат-робот также Воляот Воля в одиночкухостингиз Django API середина Получите ответ. нас Воляисследоватьвыполнитьроботличностьизметод,и介绍Что-то вродевыполнитьтекстприезжатьголосTTS)иголосприжать текст(STT)изиспользоватьсемьяинтерфейс。проходить Web голос API, интерфейс Воля нейронной сети напрямую разворачивает прибытие пользователя из браузера.

Наша Волясуществовать В этой главе рассматриваются следующие темы:

  • Введение в НЛП
  • Знакомство с чат-ботами
  • Создайте бота Dialogflow с личностью представителя службы поддержки клиентов.
  • использовать ngrok Продвигать на localhost из HTTPS API
  • использовать Django создавать测试 UI Управление заказами внутри компании.
  • использовать Web Speech API существуют распознавание голоса и синтез голоса в сети

Мы, Воляот середина, учимся приезжатьиз знаний середина из предыдущих глав и существуем, опираясь на них, изменяя при этом некоторые концепции и существуя. Этот процесс середина вводит новые концепции. 让насотпониматьобработка естественного языкаNLP)начинать。

Технические требования

ты можешьсуществоватьэта страницаначальстводоступ本главаизкод。

Для чтения этой главы вам понадобится следующее программное обеспечение:

  • Python 3.6+
  • Django 2.x

В этой главе Воля описаны все остальные установки.

Введение в НЛП

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

Давайте рассмотрим некоторые из NLP Взаимно关из常использовать术语。

корпус

существоватьизучать NLP час,ты经常встречасталкиватьсяприезжатькорпус。 С точки зрения непрофессионала, это корпус любого автора или литературного жанра из собрания произведений. существовать NLP Словарное определение слова «исследование середина, вернокорпусиз» было сделано с некоторыми изменениями и может представлять собой набор письменных текстов, документированных так, что любой выбор изметрического воля может быть классифицирован. этот些指标Может能даделать ВОЗ,издатель,тип,写делатьтип,Временной диапазон и другие характеристики, связанные с письменным текстом.

Например,Коллекция Шекспира или Любой форум по верной любой теме из темы можно просмотреть длякорпуса.

часть речи

когдаус воля разбить предложение на составные слова,И верно Должен предложение серединакаждый слово верно предложение общий смысл вклада при проведении качественного анализа,насосуществлять确定часть Речьиз Действия. поэтому,часть Основа речи В предложениях середина слов Верно смысл предложений вносит вклад и снабжает их символами.

существовать Английскийсередина,насв целом有八种типизчасть речи-глагол,существительное,местоимение,прилагательное,наречие,предлог,Соединительное слово и междометие.

Например,существоватьпредложениеRam is reading a book.середина,Ramдасуществительноеипредмет,readingдасловои动делать,иbookдасуществительноеиобъект。

ты можешьсуществоватьэта страницаначальство阅读связанныйчасть речьиз Подробнее. ты можешь尝试существоватьэта страницаначальствопопытаться найтивне Собственныйпредложениеизчасть речи。

причастие

причастиеда Разложение документа Воля на предложения и разложение предложений Воля на слова из процесса. этот很重хотеть,Потому что, если какая-либо компьютерная программа попытается обработать весь документ как одну строку,,Этот расчет Воляды — кошмар.,Потому что дляи обработка строк ресурсоемка.

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

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

Стемминг и лемматизация

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

Стемминг – это базовый процесс, основанный на правилах.,существовать Долженпроцесссередина,Слова будут обрезаны,Иногда добавляется модификатор, указывающий на корень из. Но да,Стемминг иногда может создавать человеческий словарь, середина существующих основ, которых не существует.,поэтомувернолюдидобрый读ВОЗ毫无意义。

Лемматизация преобразования слов да Воля для словаря середина дает процесс из формы слова или корня из. Таким образом, исходное значение слова из можно получить из человеческого словаря середина, что упрощает лемматизацию текста, чем выведение из текста Виспользовать. Кроме того, лемматизация существования определяет его правильность из части речь рассматривалась перед словом «существовать» в любом предложении серединаизчасть речи, алгоритм стемминга игнорирует Долженчасть речи。 Сделать лемматизацию более контекстно-зависимой, чем стемминг.

мешок слов

Компьютер не может напрямую обрабатывать ииспользовать текст. Поэтому существуют Волявсе ввод текста машинное Модель обучения должна быть Воля, прежде чем конвертировать ее в числа. Воля текста изменяется для числового массива в процессе, так что вы можете сохранить любой момент времени после преобразования текста середина для извлечения наиболее важного из исходного текста, который называется для извлечения или кодирования признаков. мешок словBoW)да Что-то вродепоток ХОРОШОиз简单технология,Выполните извлечение объектов с помощью текста «Вверно».

и BoW выполнить Взаимно关изшагнравиться下:

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

Например,Рассмотрим следующие три документа:

  1. Ram is a boy.
  2. Ram is a good boy.
  3. Ram is not a girl.

этот些документсерединажитьсуществоватьиз唯один词Можетсуществоватьвекторсередина列внедля["Ram","is","a","boy","good","not","girl"]

Следовательно, каждое предложение можно преобразовать следующим образом:

  1. [1, 1, 1, 1, 0, 0, 0]
  2. [1, 1, 1, 1, 1, 0, 0]
  3. [1, 1, 1, 0, 0, 1, 1]

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

Сходство

Сходствода любые два данного предложения из Сходствоиз меры. этосуществовать计算机科学领доменк及维护记录изгде угоднода非常поток ХОРОШОиз操делать,Найдите правильный документ с буквой В.,существоватьлюбойдокументсередина搜索слово,Сертификация и др. Приложение.

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

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

принимая во внимание Эти понятия, давайте продолжим изучать чатробот, Это NLP Самая популярная форма изприложения №1.

Знакомство с чат-ботами

Чат робота NLP Часть приложения, посвященная интерфейсу разговора. Эти интерфейсы также могут расширять свою работу для обработки основных команд и действий, в таких случаях их называют виртуальными помощниками. В последнее время с появлением специализированных устройств, таких как Google из Google Home и Alexa) запущен, и виртуальный помощник находится на подъеме.

Чат-робот может существовать во многих формах. Им не обязательно выступать только в качестве виртуальных помощников. Вы можете играть в игру «существование» серединаи чат «робот слова», попробовать «существовать» в определенном направлении или некоторые компании используют «существовать» в социальных сетях, например Twitter или Отвечайте своим клиентам на Facebook из социального чата для взаимодействия. чатробот МожетсмотретьделатьдасуществоватьИнтерактивный голосовой ответIVR)системаначальство移动изсистема,У них повышенный интеллект и способность реагировать на неизвестные входные данные.,Иногда используйте только резервный ответ,иногда甚к利использовать Предоставить извходитьруководитькольцоотвечать。

На веб-сайте также могут быть размещены виртуальные помощники, которые будут предоставлять рекомендации и помощь посетителям. Такие помощники часто встречаются на существующих веб-сайтах и ​​обеспечивают мгновенную поддержку по основным потребительским запросам. Вы, должно быть, заметили, что приехать на продажу или обслужить сайт из окна чата «Задать вопрос» или «Помочь вам», обычно существует в правом нижнем углу экрана. Они часто используют автоматический чат-робот вместо реальных людей для ответа на вопросы. Только существующий запрос был слишком сложным, чтобы его можно было зависить от автоматизированного чата поддержки клиентов робот отвечает из обращений, запросы будут передаваться только приезжающим реальным людям.

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

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

Создайте бота Dialogflow с личностью представителя службы поддержки клиентов.

Dialogflow да очень популярен в чате с Всоздаватьроботизизинструмент. Похоже на: Wit.ai,Botpress,Microsoft Bot Framework и некоторые другие доступные Всоздавать Chatrobotiz Instant Deployment Служить, Dialogflow Также имеет Google Cloud PlatformGCP),и Может Воля Dialogflow агентиспользоватьделать Google Помощник по работе, Должен Помощник может существовать миллиарды Android Запустите ХОРОШО локально на устройстве.

Dialogflow ранее известный как для Api.ai。 существоватьодеяло Google После приобретения он был переименован, и с тех пор его популярность и масштабируемость выросли. Платформу Должен можно очень легко интегрировать с несколькими платформами, такими как Facebook Messenger,Telegram,Slack,Line,Viber и Несколько других крупных коммуникационных платформ.

Наша глава «Волясуществовать середина разработки и зпроект Воля» соответствует следующей архитектурной схеме:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-RZsz9CcP-1681705163554)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/a41d094b-e97b-407c-917d-75e3604a9f83.png)]

Наше изображение «Воляиспользовать» выше середина не упоминается в нескольких Библиотекаи Служить. Мы Волясуществоватьпроект середина знакомим их и обсуждаем, потому что действительно нам о них интересно узнать.

Начало работы с Dialogflow

хотетьначинатьиспользовать Dialogflow,тыотвечать Должендоступофициальный сайт,Перейти на домашнюю страницу,Должен页面показывать Понятнопродуктинформацияидокумент Связь。 Исследование любого продукта, который вы хотите изучить, всегда является хорошей идеей, поскольку он содержит все рабочие функции программного обеспечения. Мы волясуществовать эту главу из последующих частей середина ссылаемся на часть документа серединаиз.

ты можешьсуществоватьэта страницаначальствопопытаться найтиприезжать Dialogflow документ。

Dialogflow и GCP Тесно интегрированы, поэтому сначала необходимо разработать Google счет. дляэтот,пожалуйстаизменятьприезжатьздесьСоздайтесчет. Если вы да Нет однажды использовать. Dialogflow используйте свою учетную запись, вам может понадобиться Google Учетные записи предоставляют множество разрешений.

Давайте продолжим исследовать и понимать Dialogflow Процесс создания учетной записи также UI Различные детали ишаг.

Шаг 1. Откройте консоль Dialogflow.

ты需хотетьщелкнутьПравый верхний угол страницыиз“изменятьприезжатьконсоль”кнопка。 или ВОЗ,ты можешьсуществовать Браузерсерединавходитьhttps://dialogflow.cloud.google.com/。 Если вы ищете впервые, вы увидите следующий экран:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-WikWIvUM-1681705163554)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/3f63c63f-055e-418d-ab6b-1584c6ee3e17.png)]

Панель управления предложит вам создать нового агента.

Шаг 2. Создайте нового агента.

сейчассуществовать,Мы Воля Создаем Dialogflow агент。 Сразу Dialogflow Что касается ника агента чатроботиз. этода接получать,иметь дело сикольцоприложениесемья Предоставить из所有входитьизагент。

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

Если вы не испытывали этого раньше GCP,тогда должен Создайтепроект. Мы уже существуем “Нет. 6 глава",“использовать Python существовать Google Cloud Platform начальствопроводить глубже обучение”середина,обсуждать Понятно GCP проектизсоздавать。 или вы можете просто позволить GCP существоватьсоздаватьагентчас自动дляты Создайтеновыйпроект.

Шаг 3. Познакомьтесь с информационной панелью

становиться功создавать Dialogflow агентназад,Волядля Вы предоставляете личный кабинет,Как показано на следующем скриншоте:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-ofdjkz0i-1681705163554)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/9dc140c8-5a57-428c-8d95-fe121fb43532.png)]

существоватьлевая сторона,Вы можете просмотреть меню проживания,Чтосередина Включать构становитьсячатроботизразличные компоненты。 Меню «Должен Воля» очень полезно, и вам следует внимательно прочитать все его содержимое, чтобы убедиться, что вы понимаете, о каких пунктах меню мы говорим. когда мы используем Когда мы говорим в таких предложениях, как «щелкните объект», да означает, что мы хотим, чтобы вы щелкнули элемент «объект» в этом меню серединаиз.

Центральная часть меню Воля содержит различный контент, в зависимости от того, на какой компонент меню серединаиз нажимают. По умолчанию при открытии Dialogflow консоль, она содержит список намерений роботизации чата. Что?

Намерение пользователя хочет провести робота в чате что-нибудь, чтобы выполнить действие. Например,когдаиспользоватьсемьяобъяснятьBring me a cup of coffeeчас,Они намеренно дали чатроботу «попить кофе»:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-ncU4DRNI-1681705163555)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/b455813e-a6a5-486d-af4d-83efcfcd4c80.png)]

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

Рассмотрим следующие тестовые входные данные и ответ:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-zPNM4EaQ-1681705163555)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/1c8a88f2-9d9a-4fbf-92cd-6ed636277b4e.png)]

когдаиспользоватьсемьявходитьWhat is my order statusчас,Чатробот Воля Ответить,询问所с участием Заказиз Заказ ID。 этотиCheckOrderStatus意картина匹配,и且需хотетьимядляOrderIdизпараметр。 Существует процесс разработки середина, мы Волясуществовать на протяжении всего проекта середина регулярно используем эту консоль для отладки чат-робота.

Хотясуществоватьранееиз屏幕截картинасередина,Мы показали вам предварительно настроенный агент с намерением,Датыновыйсоздаватьизагентв это время Воля没有любой自определение意картина。 Давайте создадим их!

Шаг 4 – Установите намерение

сейчассуществовать,Давайте создадим два намерения. Намерение Волядля пользователя помочь,另Что-то вроде意картина Воляверноиспользоватьсемья Предоставить из Заказ ID из статуса проверяется.

шаг 4.1 – создаватьHelpIntent

существоватьэтот子шагсередина,щелкнутьлевая сторона菜单середина“意картина”проектправая сторонаиз+кнопка。 Вы, Воля, видите, приезжаете в пустую форму с намерением создать.

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

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-7ucm31cn-1681705163555)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/e229400a-7d81-4313-80b8-0ed1a34a5b3f.png)]

дляэтот,существовать[Intent Name]серединазаполнятьHelpIntent

Теперь существуют, следуйте следующему шагу, чтобы завершить это намерение создать.

шаг 4.1.1 – входитьHelpIntentизтренироватьсяфраза

сейчассуществовать,Нам нужно определить возможное намерение вызова этого действия из фразы. для этого,Пожалуйста, нажмите на заголовок «Фразы тренироваться» и введите несколько примеров фраз тренироваться.,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-q9IYhjOn-1681705163555)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/7dfccd76-fb68-4aae-8911-22af5e77a48c.png)]

верно Обязательно нажмите «Сохранить», если собираетесь внести какие-либо изменения.

шаг 4.1.2 – добавить ответ

для ответил с этим намерением приложение бытовой запрос,Нам нужно определить возможные ответы. Нажмите на форму «Намерение создать» серединаиз заголовка «Ответ».,Затем добавьте образец ответа на запрос середина,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-KVkaT6u9-1681705163556)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/64a15276-092b-46b6-9c1e-7a2cf89d5d7b.png)]

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

шаг 4.1.3 – намерение теста

让нас测试HelpIntent。 существоватьправая сторона测试面板середина,входитьCan you help me?。 агент выдает следующий ответ:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-MN4BV6y1-1681705163556)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/5addae4f-c070-4f96-83f6-b2e65a6bf5e9.png)]

пожалуйста, обрати вниманиеначальство述屏幕截картина底部из匹配意картина。 Зависит от ВHelpIntentужестановиться功匹配входить,тренироваться фраза середина не четко определена Должен ввод,поэтомунас Может得вне结论,Долженагент работает хорошо.

Для какого агента ответ на прием прошел важный ввод тренироваться? При тестировании агента на определенное намерение мы хотим убедиться, что фраза точно и близко соответствует и все высказывания соответствуют намерению. нравиться果этоиожидатьизглазиз没有紧密Взаимно关из Запрос,вам нужно предоставить больше итренироваться фраз,И проверьте агента из любых других пунктов изсерединада, если есть какие-либо конфликты, итренироваться.

Теперь существует намерение, которое сообщает пользователю, что может делать Должен чатробот — т. е. проверять статус заказа — теперь существующее создание действительно может проверять статус заказа исходя из намерения.

шаг 4.2 – создаватьCheckOrderStatus意картина

Нажмите на кнопку «создать намерение».,Затем Воля意картинаизимясказатьвходитьдляCheckOrderStatus

шаг 4.2.1 – входитьCheckOrderStatus意картинаизтренироватьсяфраза

для Здесь вводим следующую тренироваться фразу:

  1. What is the status for order id 12345?
  2. When will my product arrive?
  3. What has happened to my order?
  4. When will my order arrive?
  5. What's my order status?

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

Нам нужно иметь возможность идентифицировать Волю для идентификатора заказа и использовать его для получения статуса заказа.

шаг 4.2.2 – от Введите середина, чтобы извлечь и сохранить свой заказ ID

существоватьCheckOrderStatusглазизиз Нет.одинтренироватьсяфразасередина,двойной щелчок 12345 И появится меню, как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-fBPZAS4U-1681705163556)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/c98bee73-f7c7-4615-b3dc-d54da04384c7.png)]

выбирать@sys.number,Затем ВоляпараметримясказатьвходитьдляOrderId。 тыизтренироватьсяфраза Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-X1bR64oo-1681705163556)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/76dcff96-1ac6-4b4d-a3f9-465c3f178ff2.png)]

Даиногда,Сразу как и другие фразы изтренироваться,использоватьсемья不встречасуществоватьнет подсказкиизслучай提及Заказ ID。 Давайте добавим подсказку, а также способ найти заказы на проживание. ID Когда Воля его хранилище из метода.

шаг 4.2.3 – Сохраните параметры и подскажите, можно ли найти жилье

Прокрутите вниз заголовок «Действие и параметры» формы середина «Приехать». входитьOrderIdделатьдляпараметримясказатьиценить,Затемвыбиратьсередина需хотетьиз复выбирать框。 Следующий скриншот должен быть на:Скриншот вашего предыдущего экрана:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-wfhfQD7p-1681705163557)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/b57ad591-d3d9-41d2-927b-357920901174.png)]

существоватьOrderIdпараметризправая сторона,щелкнуть“Определить подсказки”кдобавить вэтотпараметризнамекать。 示примернамекать Может能даSure, could you please let me know the Order ID? It looks like 12345!

Надеемся, что после появления этой подсказки будут существовать,Пользователь должен назвать идентификатор заказа,Затем Должен ID Воляи Должен намерение из Нет. Тренироваться по фразовому совпадению.

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

шаг 4.2.4 – проходить履ХОРОШОCheckOrderStatusнамерение Открытькольцоотвечать

Помните, что это намерение требует от получить заказ ID середина Получить статус заказа. В этом случае константа из набора ответов Воля не может достичь пункта приезжать из. поэтому,нас Волясуществовать意картинасоздаватьформасерединаиспользовать“выполнить”заголовок。

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

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-YiY2wD6v-1681705163557)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/9c9f4952-6bd9-4355-82d6-947bb003c29a.png)]

Полностью заполнен, чтобы вы из Dialogflow агент может запросить внешний API для генерации Долженагента необходимо сделать из ответа. иагентReceive прибытияиз запроса, связанного с местом проживания, отправляется внешний адрес проживания API, API Затем поймите и решите необходимость дать запрос из ответа. Этот чат-робот для прохождения полезен для динамических ответов.

Теперь нам нужно определить этот веб-хук для обработки статуса заказа и использования идентификатора заказа.

шаг 5 – Создайте webhook

сейчассуществовать,Наша Воля Создайте Webhook,Должен Webhook Волясуществовать Firebase Облачная консоль на трассе и вызове экстерьера API, API Наш портал управления заказами середина.

Нажмите на строку меню серединаиз «заполнить проект». Система предоставит вам Открыть Webhook илииспользовать Firebase Cloud Functions из варианта. Откройте встроенный редактор. Ваш экран Воля Похоже на:Скриншот ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-dWXBNhze-1681705163557)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/a462f840-72e8-4bd3-adda-859232692693.png)]

Наш пользовательский встроенный редактор «Воля» сохраняет существующие два файла.

Шаг 6. Создайте облачные функции Firebase

Firebase Cloud Functions существовать Firebase платформаначальствобегать,и按тысуществоватьсоздавать Dialogflow Выбирайте во время агента или создавайтеиз GCP проектиз предусматривает расчет. ты можешьсуществоватьэта страницаначальство Понятно解связанный Cloud Functions из Подробнее.

шаг 6.1 – Волянеобходимыйиз Сумкадобавить вприезжатьpackage.json

существовать Внутри联редактироватьустройствоизpackage.jsonдокументсередина,нас Воляrequestиrequest-promise-nativeСумкадобавить вприезжать Зависимостисередина,Как показано ниже:

Язык кода:javascript
копировать
"dependencies": {
    "actions-on-google": "^2.2.0",
    "firebase-admin": "^5.13.1",
    "firebase-functions": "^2.0.2",
    "dialogflow": "^0.6.0",
    "dialogflow-fulfillment": "^0.5.0",
    "request": "*",
    "request-promise-native": "*"
  }

Эти пакеты получаются автоматически.,поэтомуты无需显式осуществлятьлюбой Заказ Приходить Установитьэто们。

шаг 6.2 – Кindex.jsдобавить в逻辑

Мы Воля добавляем систему управления вызовами API Требуется из кода. существоватьdialogflowFirebaseFulfillmentвернослонопределение Внутридобавить внижефункция:

Язык кода:javascript
копировать
function checkOrderStatus(){
    const request = require('request-promise-native');
    var orderId = agent.parameters.OrderId;
    var url = "https://example.com/api/checkOrderStatus/"+orderId;
    return request.get(url)
        .then(jsonBody => {
            var body = JSON.parse(jsonBody);
            agent.add("Your order is: " + body.order[0].order_status);
            return Promise.resolve(agent);
        })
        .catch(err => {
            agent.add('Unable to get result');
            return Promise.resolve(agent);
        });
  }

существоватьдокумент末尾,Сразусуществовать ЗаканчиватьdialogflowFirebaseFulfillmentвернослонопределение До,существоватьвызов webhook вызов для добавления прибытия к предыдущей функции создания карты перед генерацией ответа. Dialogflow агентсередина соответствует намерению.

Язык кода:javascript
копировать
  let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  intentMap.set('CheckOrderStatus', checkOrderStatus);
  agent.handleRequest(intentMap);

Теперь нажмите «Развернуть», чтобы развернуть эту функцию. В правом нижнем углу экрана появляются уведомления о статусе прибытия. Дождитесь завершения развертывания и сборки.

Шаг 7 – Добавьте индивидуальности боту

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

Например,хотясуществовать В предыдущем примере середина мы выбрали очень стандартный пользовательский ввод для ответа,Но дапроходитьсуществовать реагирует на серединаиспользовать настоящий изязык или другие декоративные элементы.,нас肯定Можетделатьэто Даже加有趣。 Если мы не покажем ответ напрямую, чтобы получить API из输вне,идадобавить в Понятновстречаразговаривать修饰符(НапримерGreat, now let me see where your order is...),И существует Воля ответ получить и загрузить приезжатьагент процесса середина,делать Fulfillment Функция генерирует заполнители сеансов, что кажется очень реалистичным. делатьдляalmost there...,just getting there...,hmmm, let me see...и Что他填заряжать剂,Зависит от ситуации и требований.

Вы также можете использовать Dialogflow из Small Talk Модуль для чата, роботнастройки, некоторые интересные мелочи. Чтобы использовать его, нажмите слева в пункте меню «Сплетни» и включите «Сплетни». ты можешьдобавить в Некоторый有趣изкольцоотвечать,让тыизроботсуществоватьсталкиватьсяприезжатьидентификация Запросчасвстреча做вне Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-YOpWNrY0-1681705163557)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/175d0651-9d60-46d8-9d33-70fc6f938486.png)]

Чат для существования Чат роботсередина очень полезен для придания уникальности личности!

существовать下одиншагсередина,Мы Воля Создаем Пользовательский интерфейс для прямого взаимодействия с веб-сайтом управления заказами и этим чат-роботом. Да,Зависит от ВМы говорим об издабазе В REST API внешний интерфейс, поэтому мы, скорее всего, воля в этом UI идля Системы управления заказамисоздаватьиз API Размещается отдельно.

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

Улучшение HTTPS API на локальном хосте с помощью ngrok

Вам, Воля, нужно создать себя из системы управления заказами. API могу сделать Cloud Functions Скрипт работает нормально, так что его можно скачать с API середина Получить статус заказа. ты можешьсуществоватьэта страницасерединапопытаться найтиприезжатьбыстрыйобразец。 тыиз API долженсуществовать HTTPS URL начальствотранспорт ХОРОШО. дляэтот,Вы можете использовать PythonAnywhere и ngrok Нравится из Служить. хотя PythonAnywhere Волякодхостингсуществовать Что Служитьустройствоначальствои提供固定из URL, но да ngrok Может Установитьисуществоватьместныйбегатьк Кlocalhost提供изменять发地址。

假设тыдолженсуществоватьсистемаизпорт8000начальстводля Заказ管理 API бегать Django проект, и в настоящее время существующий желает обеспечить HTTPS URL в целях тестирования; Вы можете выполнить следующие шаги. ngrok Легко сделайте это:

  1. Загрузите инструмент ngrok.

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

  1. Создайтесчет.

Следующий,Зарегистрируйте аккаунт на сайте существования,Затемизменятьприезжать Панель управления。 Вы можете использовать GitHub или Google Сертификация приходит к вам быстро

Вы, Воля, просматриваете следующий дашборд:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-JbjCMLui-1681705163558)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/e6d34b11-f143-43a2-bc9b-834b34f9dabc.png)]

Зависит от ВВы скачали и установили инструмент Должен,поэтому Может直接跳ксоединятьтыизсчет.

  1. Воля — ваша учетная запись ngrok и ваша ассоциация инструментов.

копировать ngrok Панель управлениясуществоватьПодключайте аккаунтычасть下给внеиз Заказ-это Включатьтысчетиз authtoken,исуществоватьбегатьчас Волясистеманачальствоиз ngrok Подключение инструмента приехать на сайт из ngrok счет.

Затем,нас Подготовить移кlocalhostпорт。

  1. настраивать ngrok 地址кизменять发приезжатьlocalhost

наконец,использоватьниже Заказначинать Воляверно随机生становитьсяиз ngrok URL из所有пожалуйста求изменять发приезжатьlocalhost

Язык кода:javascript
копировать
ngrok http 8000

Пока вы держите терминал открытым, ngrok Служить Сразу запустится и останется активным. Вам стоит посмотреть Долженсуществовать на своем экране. на: Следующий скриншот вывода:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-I4E4dJGN-1681705163558)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/876ab489-46d8-4ced-92a3-32a95fbb08c4.png)]

вернотыиз ngrok URL из Все запросы регистрируются на терминале «Волясуществовать». ты можешьсуществоватьпожалуйста求日志начальство方листизForwardingХОРОШОсерединапопытаться найтиприезжатьтыиз ngrok URL。 пожалуйста, обрати внимание,httpиhttpsпорт Все正существоватьизменять发。 сейчассуществовать,Вы можете использоватьсуществоватьместный计算机начальствобегатьиз API Сервис от Firebase выполнить вызов, последнее разрешено только HTTPS вызов。

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

нас Досуществоватькнигасерединаиспользовать Понятно Django,Прямо сейчассуществовать“Нет. 8 глава",“существовать Microsoft Azure начальствоиспользовать Python проводить глубже обучение”и“Нет. 10 глава",“использоватьглубокое обучениеизприложение Безопасность в Интернете». Поэтому мы, Воля, пропускаем соответствующее Django Подробная информация о том, как это работает и с чего начать. Давайте непосредственно рассмотрим, как вы можете взаимодействовать со своим голосом. UI!

Если он еще не установлен в вашей системе Джанго, пожалуйста, следуй за "Net. 8 глава",“существовать Microsoft Azure начальствоиспользовать Python проводить глубже обучение”из“Django Web Раздел «Развитие из Введение».

Шаг 1. Создайте проект Django.

каждый Django Все веб-сайты — это проект. хотеть Создайте,Пожалуйста, дайте следующую команду:

Язык кода:javascript
копировать
django-admin startproject ordersui

использоватьниже Оглавление结构создаватьимядляordersuiиз Оглавление:

Язык кода:javascript
копировать
ordersui/
| -- ordersui/
|         __init.py__
|         settings.py
|         urls.py
|         wsgi.py
| -- manage.py

Продолжим модуль для Долженпроектсоздавать.

Шаг 2. Создайте приложение, использующее API системы управления заказами.

пожалуйста, запомни,каждый Django проект Все Зависит от Несколько человек работают вместе из Django состав приложения. сейчассуществовать,нас Волясуществовать Долженпроектсередина Создайте Django приложение,Долженприложение Воляиспользовать Заказ管理система API и предоставить UI Приходите и посмотрите API данные Библиотекасередина Включатьизсодержание。 Это для проверки Dialogflow агента Никакая нормальная работа не важна.

существоватьновый终端или Заказнамекать符серединаиспользоватьcdЗаказ切换приезжатьordersuiОглавление。 Затем,использоватьниже Заказ Создайтеприложение:

Язык кода:javascript
копировать
python manage.py startapp apiui

этот Волясуществоватьordersui Django Каталог проектприложения серединасоздавать имеет следующую структуру каталога:

Язык кода:javascript
копировать
apiui/ 
| -- __init__.py
| -- admin.py
| -- apps.py
| -- migrations/
|         __init__.py
| -- models.py
| -- tests.py
| -- views.py

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

Нет. 3 шаг – настраиватьsettings.py

сейчассуществовать,нас Воляруководитьordersui/settings.pyдокументсерединанеобходимыйиз Некоторый Конфигурация。

шаг 3.1 – Воля apiui Приложение добавляется в список установленных приложений.

существоватьINSTALLED_APPSсписоксередина,добавить вapiuiприложение,Как показано ниже:

Язык кода:javascript
копировать
# Application definition

INSTALLED_APPS = [
 'apiui',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
]

Django 框架только ВключатьINSTALLED_APPSинструкциясередина列внеизбегатьчасприложение,Как и раньше, из кода серединапоказано, нам также необходимо определение проекта подключения к данным библиотеки.,Это Волясуществовать в следующей части шоу середина.

шаг 3.2 – Удалить настройки базы данных

Зависит от ВЭто UI середина不需хотетьданные Библиотекасоединять,поэтомунас Воляудалитьданные Библиотекасоединятьнастраивать Конфигурация。

КомментироватьDATABASESсловарь,Как показано ниже:

Язык кода:javascript
копировать
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

Сохраните файл. После этого мы Воляна благоустройство URL дорога Зависит отк指Кapiuiдорога Зависит от。

шаг 4 – Волядорога Зависит отдобавить вприезжать apiui

Изменятьordersui/urls.pyсерединаизкодкдобавить вдорога径,к Волядорога径настраиватьдокумент Включатьсуществоватьapiuiприложение Внутри。 Ваш изфайл Воля содержит следующий Код:

Язык кода:javascript
копировать
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
 path('', include('apiui.urls')),
]

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

шаг 5 – существовать apiui Добавляем маршрутизацию в приложение

сейчассуществовать,насужеинструктироватьпроектиспользоватьapiui URL дорога Зависит от, нам нужен создатель этого приложения, необходимого из файла. существоватьapiuiОглавлениесередина Создайтеимядляurls.pyиздокумент,Его содержание следующее:

Язык кода:javascript
копировать
from django.urls import path

from . import views

urlpatterns = [
 path('', views.indexView, name='indexView'),
 path('<int:orderId>', views.viewOrder, name='viewOrder'),
]

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

шаг 6 – Создайте необходимое представление

существоватьнассоздаватьиздорога Зависит отсередина,нас提приезжать Понятно两个视картина-indexView,это不带любойпараметр; viewOrder,это带одинимядляorderIdизпараметр。 существоватьapiuiОглавлениесередина Создайтеимядляviews.pyизновыйдокумент,Затемв соответствии снижешаг Создайте необходимое представление。

шаг 6.1 – создаватьindexView

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

Язык кода:javascript
копировать
from django.shortcuts import render, redirect
from django.contrib import messages
import requests

def indexView(request):
 URL = "https://example.com/api/"
 r = requests.get(url=URL)
 data = r.json()
 return render(request, 'index.html', context={'orders': data['orders']})

нас ВолясуществоватьнижечастьсерединасоздаватьviewOrder视картина。

шаг 6.2 – создаватьviewOrder

нравиться果наск/orderIdизформа Воля Заказ ID 传递приезжать同один/дорога Зависит от, тогда нам Должен вернуть заказ из статуса. использоватьниже Код:

Язык кода:javascript
копировать
def viewOrder(request, orderId):
 URL = "https://example.com/api/" + str(orderId)
 r = requests.get(url=URL)
 data = r.json()
 return render(request, 'view.html', {'order': data['order']})

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

шаг 7 – Создать шаблон

существование Мы ранее определили с точки зрения середина,насиспользовать Понятно两个шаблон-index.htmlиview.html。 Дадля Понятноделатьэто们и Тот же дизайншагпоказывать,насвозвращаться Волянастраиватьодинbase.htmlшаблон,это Воляделатьдля UI середина Остальные шаблоны представления из основного шаблона.

Зависит от Вшаблон大多только если HTML шаблон,верно Вебсайт из Важный контент мало влияет,поэтомунассуществоватьздесь提供Понятноэтот些документизкод。 тыдолжен ВоляшаблондокументдержатьсуществоватьapiuiОглавление Внутриимядляtemplatesизпапкасередина.

На этом этапе вы можете использовать следующие команды для запуска браузера проекта Служить Django и браузера существующего середина для проверки веб-сайта:

Язык кода:javascript
копировать
python manage.py runserver

сейчассуществоватьнасиз Служитьустройство正существоватьбегать,нас Волясуществовать下одинчастьсередина围绕это Создайтеголосинтерфейс。

Распознавание и синтез речи на веб-страницах с помощью Web Speech API

Web Области развития середина Новейшая и очень интересная разработка да Web Speech API из Введено. Хотя Google ужесуществоватьрабочий столи Android из Google Chrome Полная поддержка браузера середина Web Speech API, но Safari и Firefox Предусмотрена только частичная реализация. Web Speech API В основном он содержит два компонента:

  • голос合становиться:ширедлялюди知из TTS。 Он выполняет для любого заданного текста генерацию голосового повествования о действиях.
  • голосидентифицировать:такжесказатьдля STT。 Он выполняет функцию распознавания слов, произнесенных пользователем, и преобразования Воли в соответствующий текст.

Вы можете просмотреть Web голос API из Очень подробноиздокумент,Должендокумент Можетот Mozilla документ页面获得。 ты можешьсуществоватьэта страницаначальствопопытаться найтиприезжать Google Предоставить изтехнология Демо:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-09pAmypj-1681705163558)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/a516e800-2a10-471f-84b2-c76d65e116c1.png)]

существоватьнижешагсередина,Наша база Воля В Web Speech API из добавлена ​​кнопка "Задать вопрос" приезжать на наш сайт UI середина.

шаг 1 – Создать элемент кнопки

В этом разделе необходимо разместить все коды UI изbase.htmlшаблонсередина,Чтобы его можно было найти на всех страницах сайта.

Мы используем следующий код для быстрого создания кнопки: Должна кнопка «Спросить» с текстом «Воля» на всем сайте на веб-странице в правом нижнем углу:

Язык кода:javascript
копировать
<div id="customerChatRoot" class="btn btn-warning">Ask a question</div>

сейчассуществовать,Нам, Воля, нужны идеиизации и настройка Web Speech API.,Сразу же, как существование в следующем стихе, середина делает из.

шаг 2 – инициализация Web Speech API и выполнить настройку

После загрузки веб-страницы,Нам нужна идеяизация Web Speech API верная иконка и для ее настройки необходимая конфигурация. для этого,пожалуйстаиспользоватьниже Код:

Язык кода:javascript
копировать
$(document).ready(function(){
            window.SpeechRecognition = window.webkitSpeechRecognition || window.SpeechRecognition;
            var finalTranscript = '';
            var recognition = new window.SpeechRecognition();
            recognition.interimResults = false;
            recognition.maxAlternatives = 10;
            recognition.continuous = true;
            recognition.onresult = (event) => {
               // define success content here 
            }

            // click handler for button here
        });

Вы можете посмотреть приезжать, мы уже придумали один Web SpeechRecognition API да, слон, тогда да, у него есть какая-то конфигурация. Попробуем разобраться в следующей конфигурации:

  • recognition.interimResults(布尔ценить)инструктировать API Должен попытаться определить временные результаты и сказать слово. Это добавляет накладные расходы на наш вариант использования, поэтому он закрыт. существоватьизменять录速度比изменять录Точность Даже重хотетьизслучай,Например, когда говорящий генерирует транскрипцию в реальном времени.,Воля его Открыть будет полезнее.
  • recognition.maxAlternatives(число)告诉Браузер Можетдля同одинголос段生становиться多少个替代项。 Это полезно в ситуациях, когда существующий браузер не совсем понимает, о чем идет речь, и может предложить пользователю возможность правильно определить изложенное.
  • recognition.continuous(布尔ценить)告诉Браузердадолжен连续捕获音频возвращатьсядасуществоватьодин次идентифицироватьголосназад停止音频。

Да,нас尚еще нетопределениеосуществлять STT Код из выполняется при сборе результата прибытия. дляэтот,нас Кrecognition.onresultфункциядобавить в Понятнокод,Как показано ниже:

Язык кода:javascript
копировать
              let interimTranscript = '';
              for (let i = event.resultIndex, len = event.results.length; i < len; i++) {
                let transcript = event.results[i][0].transcript;
                if (event.results[i].isFinal) {
                  finalTranscript += transcript;
                } else {
                  interimTranscript += transcript;
                }
              }
              goDialogFlow(finalTranscript);

              finalTranscript = '';

фронт изкод块существоватьиспользоватьсемья讲разговариватьчас Создайте临час笔录,когда, говоря больше слов,Должен笔录встреча不断Даженовый。 Когда пользователь перестает говорить, временная расшифровка Воля добавляется к окончательной расшифровке середина и передается обработчику и Dialogflow Интерактивная функция. от Dialogflow После того как агент получит ответ «приехать», следующий голосовой ввод пользователя сбрасывает окончательную расшифровку.

пожалуйста, обрати внимание,насуже Воляиспользоватьсемьяголосиз最终идентифицироватьстановиться绩单发送给имядляgoDialogFlow()изфункция。 Давайте определим эту функцию.

шаг 3 – вызов Dialogflow агент

После получения базы пользователей Вголосиззапроса из текстовой версии, Воля отправляет приезжать Dialogflow агент,Как показано ниже:

Язык кода:javascript
копировать
function goDialogFlow(text){
            $.ajax({
                type: "POST",
                url: "https://XXXXXXXX.gateway.dialogflow.cloud.ushakov.co",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: JSON.stringify({ 
                    "session": "test",
                    "queryInput": {
                    "text": {
                        "text": text,
                        "languageCode": "en"
                        }
                    } 
                }),
                success: function(data) {
                    var res = data.queryResult.fulfillmentText;
                    speechSynthesis.speak(new SpeechSynthesisUtterance(res));
                },
                error: function() {
                    console.log("Internal Server Error");
                }
            }); 
        }

Вы обнаружите это, когда API Когда вызов успешен, мы используем SpeechSynthesis API Сообщите результаты пользователю. Его использование лучше, чем SpeechRecognition API Больше для проще, поэтому кажется, что существует Firefox и Safari серединаиз Нет.один。

Уведомлениеначальствоодинфункциясерединаиспользоватьиз API URL。 Когда это может показаться странным, вам может быть интересно, откуда мы это взяли URL。 По сути, мы пропускаем настройку терминала. Dialogflow агент Служитьсчет Конфигурацияизхотеть求,Терминал «Должен» всегда находится в сценарии «В» существует, обработка осуществляется локально в системе.,поэтомутрудно передать。

Чтобы для вашего проекта получить аналогичные из URL, следуйте следующему шагу; В противном случае пропустите "шаг 4» и перейдите непосредственно к «шаг 5”。

шаг 4 – проходить Ushakov существовать Dialogflow Gateway Создано Dialogflow API агент

изменятьприезжатьздесь。 ты Волясмотретьприезжатьодининтерфейс,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-AzwnMZkJ-1681705163558)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/2de7c84c-4fa8-4746-9387-f965726690e7.png)]

Dialogflow Gateway Продвигается голосом UI и Dialogflow из взаимодействия между агентами. Это очень полезно в ситуациях, когда мы создаем статические веб-сайты. Dialogflow Шлюз окружает Dialogflow API Упрощение предусмотрено API Обертка и очень проста в использовании.

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

шаг 4.1 – существовать Dialogflow 网关Созданосчет

Нажмите «домой», запустите существующую платформу. Создайте учетную запись. Вам будет предложено использоватьтыиз Google Вход в аккаунт. убеждатьсяиспользоватьик前создавать Dialogflow агент Взаимно同изсчет.

шаг 4.2 – для Dialogflow агентпроектсоздавать Служитьсчет

насранеесуществовать“Нет. 6 глава",“использовать Python существовать Google Cloud Platform начальствопроводить глубже обучение»середина подробно рассказывает, как для GCP проектсоздавать Служитьсчет. для Связьприезжать Dialogflow агентизпроект Создайтеновыйиз Служитьключ,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-vQKBE8XS-1681705163559)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/ad8232d2-aff2-47bb-8654-343e8a131ef2.png)]

После успешного создания ключа,Воля выскакивает правильное диалоговое окно,Сообщить вам, что ключ сохранен приезжатькомпьютерсередина,Как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-aeqvVzGu-1681705163559)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/caea516d-c88e-49ce-9a31-be83ead57a5b.png)]

Учетные данные сервисной учетной записи начинаются с JSON изформаскачатьприезжатьместныйсистема,Чтоимясказатьнравитьсяфронт из Скриншотпоказано.

сейчассуществовать,нас Воляиспользовать Должен Служитьсчет凭据документ Воля Dialogflow Gateway Свяжитесь с нами Dialogflow агент。

шаг 4.3 – Воля Служить ключевой файл загрузить приезжать Dialogflow Gateway

существовать Dialogflow Gateway На консоли вы найдете кнопку «Загрузить ключ». Нажмите на нее, чтобы загрузить сгенерированный файл ключа учетной записи из Служить. После загрузки консоль Воля покажет вам Dialogflow API агент URL-адрес, как показано ниже:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-tuhXcAaf-1681705163559)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/0dc2a2ff-d5ff-43e8-9208-afb12d3facbb.png)]

Мы волясуществовать ранее определенную из функции серединаиспользовать URL-адрес шлюза.

Шаг 5 – Добавьте обработчик кликов для кнопки

наконец,нас К“Задать вопрос”кнопкадобавить вclickиметь дело сустройство,к便это Может触发использоватьсемьявходитьизголосидентифицироватьк及 Dialogflow агентиз выходного синтеза.

существовать“шаг 2”серединаопределениеиздокументreadyфункциясередина,добавить внижеclickиметь дело сустройство Код:

Язык кода:javascript
копировать
$('#customerChatRoot').click(function(){
 recognition.start();
 $(this).text('Speak!');
});

сейчассуществовать,Когда микрофон начинает прослушивать ввод пользователя,кнопкатекст Воля ИзменятьдляSpeak!,Предлагает пользователю начать говорить.

Попробуйте провести тест на изнастройки Должен сайт,Затем查смотретьнравиться何делать Чтонормальный工делать!

Подвести итог

существовать本главасередина,Мы объединяем несколько технологий,Представлено завершение проекта завершения проживания,Долженпроект展示Понятно Воляглубокое обучениеприложение В сайте самый быстрорастущий аспект №1. мы представили Dialogflow,Dialogflow Шлюз, GCP IAM,Firebase Cloud Functions и ngrok и другие инструменты. Мы также продемонстрировали, как построить REST API из Пользовательский интерфейс и как его использовать Web Speech API конечно, это в гости. Web голос API хотя все еще находится в зачаточном состоянии, но да Web Браузер «серединаиспользоватьиз» — это передовая технология, и ожидается, что в ближайшие годы она будет быстро расти.

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

13. Приложение: успешные примеры и новые области глубокого веб-обучения.

Зачастую важно знать, что другие делают с какой-либо технологией, чтобы понять ее пригодность для масштабирования и ожидаемую отдачу от инвестиций. В этой главе представлены некоторые из самых известных веб-сайтов, чьи продукты в значительной степени зависят от использования глубоких технологий. обучениеизсила。 В этой главе также обсуждается, что можно использовать обучение Усиливатьиз Web Развивать некоторые ключевые области исследований. Эта глава «Воля» поможет вам копнуть глубже. Web Технология глубокое обучение слиянию и вдохновит вас на придумывание своего собственного интеллекта Web приложение.

Эта глава состоит из двух основных частей:

  • Quora и Duolingo и другие организациисуществовать Чтопродуктсерединаприложение Понятноглубокое обучениеиз Истории успеха
  • глубокое обучениесерединаиз Некоторые ключевые новые области, такие как понимание прочитанного,аудио поискждать

Давайте начнем!

история успеха

В этом разделе середина мы, Воля, кратко представляем некоторые из следующих AI дляCore для содействия росту бизнеса продукта/компании. существует Это примечательно изда, весь продукт или Служитьда НИКАКОЙ базы В любом AI Технологии и алгоритмы не важны; толькосуществовать Чтосерединаизодин小частьилииметьидентификация Функция изслучайиспользовать AI Это может улучшить практичность продукта и улучшить широкий ассортимент продукции клиентов. Иногда у вас могут даже не существовать какие-либо функции продукта. Вместо этого вы можете использовать искусственный интеллект только для анализа данных и выявления ожидаемых тенденций, чтобы гарантировать, что ваши продукты соответствуют этим тенденциям. Давайте посмотрим на полезные способы расширения масштабов деятельности этих компаний.

Quora

существовать Quora Раньше существовало множество сайтов и форумов вопросов и ответов. существование из В какой-то момент истории Интернета существующие онлайн-форумы считались пригодными и больше не могли быть улучшены; Но да, Кора представил некоторое использованиеглубокое обучение Внесите изменения, которые помогут им быстрее превзойти другие форумы. Ниже приведены их корректировки:

  • Они позволяют участникам запрашивать ответы сразу после публикации любого вопроса с помощью функции «Вопрос и ответ». Это делаетвопрос Даже容易приезжать达Взаимно关тема专家,Ответ дали быстро,и сделать платформу Должен более отзывчивой,Дажеточный.
  • ихиспользоватьобработка естественного языкаNLP)屏蔽Понятно写得不好извопроси Отвечать。 Это представляет концепцию автоматически модерируемых форумов с высококачественным контентом.
  • Определите любой вопрос — темы ответов по тегам и похожим статьям позволяют легко находить похожие вопросы. Это делает Quora использоватьсемья花费大量время阅读иих Взаимно似извопросиз Отвечать,только еслидля Понятносуществоватьихкаждыйлюдисерединапопытаться найтиприезжатьновыйизинформация。
  • Quora Digest Информационный бюллетень соответствии Тщательно подобранные коллекции статей, основанные на интересах пользователей, почти всегда успешно возвращают пользователей на платформу:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-DwTs1s9L-1681705163559)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/37a5aa9b-2d11-4fc5-9776-4fa843b19966.png)]

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

Duolingo

Изучение нового языка – всегда непростая задача. когда Duolingo В 2012 Когда Год появился на рынке, он принес с собой все более важный и распространенный термин — искусственный интеллект. Они воля запоминают слова, грамматические правила и другие обыденные вещи в мини-играх, а пользователи этих верекаждых мини-игр реагируют по-разному. Duolingo AI Учет временных особенностей человеческого мозга. Они сформулированы: Человек может быстро забыть слово «приехать», которое он выучил. Они называют эту концепцию регрессией периода полураспада и используют ее для улучшения достоверности, которая предсказывает, что пользователь, существующий в любой данный момент времени, забудет слово из.

В этом существовании они добились больших успехов, сделав Duolingo Into для мобильного магазина приложений середина самого популярного приложения№1. Их веб-сайт также является классическим примером неортодоксального дизайна и хорошо принят. ты можешьпроходитьздесьПонятно解связанный Duolingo из Подробнее.

Spotify

Аудиоплеер доступен уже давно,Да没有люди Воля Spotify Вывести приезжать на рабочий стол. Spotify использоватьглубокое обучение определению песни, которую пользователь желает прослушать в любой момент времени. Приходите еще, они сделают AI Достигнуто бурное развитие, в соответствии пользователь недавно проигрывал песни, чтобы предложить целый плейлист. Spotify быстрый рост популярности вдохновил многих попытаться сделать это и попытаться догнать Spotify к欢迎程度изпродукт。

Spotify Также введена очень мощная функция -в соответствии с Аудио-образцы поиска песен. Это мгновенная горячая функция; Многие пользователи скачивают Spotify только еслипотому чтодляих不记得их正существоватьслушатьизодин首好слушатьизпесняизимя字,所к想迅速попытаться найтивнеэтоизимя字。 Вам просто нужно записать песни и аудио, которые воспроизводятся поблизости, и записать их каналы. Spotify Вы можете знать, что правильное существование — это исполнение песен.

Поиск Google/Фото

хотя Облачное хранилище изображенийда Dropbox ждатькомпания Предоставить изсейчас有решение,но Google Photos проходить Воля AI Включение его в уравнение революционизирует облачное хранилище изображений. Google Взаимно册Зависит от ВЧто令люди惊叹из Функция,Например, следующее,Используется миллиардами людей по всему миру:

  • распознавание лиц:этот Функцияжитьсуществовать Вимядля Picasa изранееиз Google Продукт середина, Продукт Должен признан качественным Google Photos из предшественника.
  • волшебник:Google Фотоальбом автоматически определяет фотографии, сделанные на одном и том же событии и поводе. Затем,Он пытается создавать картины из фильмов,или ВОЗтолько если触摸картина像кделать Чтосмотреть起Приходить Даже好。 Иногда Гугл Альбом также анимирует то, что выглядит как последовательность фотографий. GIF。
  • документи мем изидентификация:Google Фотоальбом советует пользователям архивировать старые фотографии, скриншоты и мемы. Это очень полезно для экономии места на устройстве:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-kfCZRpnt-1681705163560)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/07b18479-7ac7-4225-94b6-a59738a7ddc4.png)]

Google Взаимно册Зависит от Всуществоватьназад台использовать Понятноглубокое обучение, поэтому личное существование существует. Линия галереи является лидером рынка. нравиться果ты想Понятно解Дополнительная информация,пожалуйстадоступздесь

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

Ключевые развивающиеся области

существоватьфронт изчастьсередина,нассмотретьприезжать Понятно几家компаниянравиться何结合база Вглубокое обучение технологии для улучшения своей продукции. существует этот раздел середина, мы Воля обсуждаем, когда прежние положительные существуют много исследований из некоторых областей, и мы Воляпроходим Web Развитие с точки зрения возможности приехать из-за своего влияния.

аудио поиск

Предположим, вы существуете в баре середина и любите живую группу, играющую песни. Вы существуете в сознании середина, вы знаете, что слышали эту песню раньше, но не можете вспомнить название песни. Разве не было бы здорово, если бы у вас была система, которая могла бы прослушивать песню и искать ее название? Добро пожаловать в приезжатьаудио Поисковая система изWorld!

Существует много существующих аудио поисковая система со звуковым поиском середина (Зависит от Google Assistant При условии) да самый популярный из поисковиков №1. Вы также можете посмотреть Shazam。 На скриншоте середина можно увидеть результаты поиска звука, например аудио. результаты поиска:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-SEhhBKlQ-1681705163560)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/9960ba72-9308-4507-bc6f-33b4ea110623.png)]

для создания системы соответствии Получение аудиосигнала для выполнения аудио При поиске системе сначала необходимо обработать сигнал Должен, который называется для обработки аудиосигнала. Затем система обрабатывает сигнал и сравнивает его с тысячами существующих песен. Существующий сигнал Воли и существующая библиотека данных сравниваются перед использованием нейронной сети, которая выполняет определенное представление, обычно Воля, которая называется отпечатком пальца. Да,Это все еще активная область исследований.,我强烈建议ты阅读эта страницаначальствоиз文глава,Узнайте больше об этих технологиях.

понимание прочитанного

Вы когда-нибудь хотели, чтобы поисковая система могла предоставить вам ответ на ваш поисковый запрос, не находя подходящих ссылок на ресурсы, которые могут содержать ответ на ваш поисковый запрос? Хорошо, если система будет проводитьпонимание прочитанного для программирования, то существующего сейчас Сразу есть возможность калибровать эту цель. Давайте посмотрим на скриншот ниже, чтобы понять, что это значит:

[Передача изображения по внешней ссылке не удалась,Исходный сайт может иметь механизм защиты от кражи.,Рекомендуется сохранить картинку Воля и загрузить ее напрямую (img-3CJoy7j6-1681705163560)(https://gitcode.net/apachecn/apachecn-dl -zh/-/raw/master/docs/handson-py-dl-web/img/481443bd-131c-438b-94ce-0efe89d8eedd.png)]

нравиться果ты仔细地Уведомлениеприезжать,нас甚к Все没有Воля Sachin Tendulkar заявление отца ставит вопрос. Современные системы способны самостоятельно определять такие свойства.

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

  1. первый,Сформулируйте поисковые запросы с релевантными ключевыми словами,Затем搜索引擎осуществлять搜索。
  2. Затем,Поисковая система предоставляет вам список соответствующих документов для данного поискового запроса.
  3. Вы внимательно прочитайте этот документ, в соответствии с самим собой понимать и систематизировать свою серединаиз информацию,Затем得вне结论。

По сути,До сих пор существуют многие ручные изшаг,и且этот个вопрос仍然житьсуществовать:насданет Может设计одинсистема Приходить自动длянаспопытаться найтиприезжать合适Отвечатьизпроцесс? Существующие поисковые системы предоставляют список релевантных документов для данного поискового запроса, но недостаточно развиты, чтобы реально давать ответы на поисковый запрос изсистемы. Короче говоря, эта система должна делать следующее:

  1. Следуйте соответствующей структуре документации.
  2. 理清этот些документсередина Предоставить изсодержание。
  3. Приходите к окончательному ответу.

Давайте немного упростим задачу. Предположим, что для данного вопроса у нас уже есть список соответствующих параграфов, теперь существует необходимость разработать систему, Должен система действительно может из этих параграфов середина понять, и для этого мы даем четкий ответ на данный вопрос. существоватьпонимание прочитанногосистемасередина,Нейронные сети обычно учатся улавливать глубокие семантические связи между связанными абзацами в заданном вопросе.,Затем制定最终Отвечать。

Возможно, вы уже знаете, например, Google Поисковые системы, такие как Bing и Bing, уже понимают прочитанногоспособность。

существовать Обнаружение фейковых новостей в социальных сетях

В связи с быстрым развитием социальных сетей новостей нет. Социальные сети легко стали одним из наших основных источников новостей; Но да, его подлинность обычно не гарантируется. Не все новости, с которыми вы сталкиваетесь в социальных сетях, правдивы, можно с уверенностью сказать, что существует много фейковых новостей. этот种сейчасслонизназад果Может能非常令люди震惊,и действительно может привести к злоупотреблениям,Насилие и другое поведение для.

Некоторые организации и учреждения пытаются бороться с этим и доводить до сведения людей достоверность новостных сообщений. принимая во внимание Мы читаем тонны новостей в социальных сетях каждый день, и эта задача может быть очень утомительной. Итак, теперь возникает вопрос: можем ли мы использовать машинное обучениеиз Способность автоматически обнаруживать фейковые новости? 实际начальство,Это активный исследователь в области,Масштабного решения этой проблемы пока нет.

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

鼓励тысуществоватьэта страницаначальство查смотреть调查报告,Отчет «Должен» представляет собой подробное руководство по различным методам обнаружения фейковых новостей.,иобсуждать Понятносвязанный Должентемаиз Взаимно关研究。 С другой стороны, семья по имени Varia Немецкий стартап пытается решить проблему фейковых новостей уникальным способом. Они не предоставляют достоверных новостей, в то время как да предоставляют определенные новости, основанные на различных мнениях. Другими словами, они обеспечивают перспективу Служить. хотеть Понятно解Дополнительная информация,ты Абсолютноверноотвечать Долженсуществоватьэта страницасерединаруководить检查。

Подвести итог

существоватькнигаизнаконецодинглавасередина,нас试картина激发ты构建下одинглубокое обучениепроекти Воля Чтосуществовать Web платформаначальствоиспользовать。 Возможно, вас заинтересуют другие истории об этих компаниях. AI Преобразовал бизнес и доминировал на рынке. Если вы просматриваете почти каждый веб-сайт, который посещаете, они в некотором роде будут обладать искусственным интеллектом. обучение элементам, будь то система рекомендаций или рекламная форма (также система рекомендаций по продвижению). Тогда мы представилиглубокое обучение домена середина т.е. Воля появляется из тем, которые ищут существующие в ближайшее время из Воля приходят существующие альтернативиз темы на сайте. Если ты можешь в соответствии с Любую из этих тем серединаиз предоставить Служить, это Сразу здорово!

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.