Здравствуйте, сообщество DEV!
На прошлой неделе я и мой друг Шахин имел привилегию взять Вебинар О разработке программного обеспечения как практический целостный подход. Вот моя статья, нарисовала, как мы развернули очень простое веб-приложение для игрушек AI. Следуйте!
Вот a русалка График, объясняющий разницу между Обычное программирование и ML программирование 1 (Обучение) (Тестирование)
Глубокий синий выиграл чемпионат мира по шахматам, используя обычные программирования, с другой стороны Альфага Выиграл чемпионат мира по уходу, используя программирование AI (глубокое обучение). Почему такое изменение в подходе? Потому что это было бы поразительно сумасшедшим для кода правила Для всех возможностей четырехглаистых возможностей на доске Go. Здесь я продемонстрирую очень простое приложение AI 2 а затем прогуляться по шагам развертывания его.
Яблоки или апельсины?
Давайте попробуем написать некоторые правила для классификации яблок и апельсинов в данной картинке. Мы можем придумать что-то подобное:
- Яблоки легче апельсинов
- Яблоки могут иметь красный или зеленый цвет, а апельсины апельсины.
- Apple гладкие и апельсины неровные.
- … скоро.
Но что, если картинка была вашей кошки! Будет ли машина сможет сказать разницу? Или что если у вас был чертеж карандаша? И, очевидно, как насчет всех вариантов этих фруктов? Вы видите … Мир вокруг нас сложен, чтобы быть классифицированным в рамках строгих математических правил. Так…
Как работает AI?
Термин Обучение кажется странным к компьютерам, запоминание не но учится, на самом деле? Есть модель под названием Классификатор дерева решений 3 который приходит к выводу после того, как задавать определенные соответствующие вопросы неоднократно, что-то вроде Акинатор игра.
Модели AI состоят из трех этапов: Обучение
, Тестирование
& Развертывание
Отказ Этап обучения – это то, где модель учиться (Я объясню, что это значит в мгновение). В тестированной фазе модели можно увидеть Новые данные и предсказывать что это. Наконец, как и любые другие компьютерные программы, которые модели AI готовы быть готовыми к производству.
Возвращаясь к яблокам и апельсинам мы будем тренировать заранее построенный Классификатор дерева решений (DTC). Здесь мы опишем наше обучение Набор данных Как в таблице ниже:
яблоко | 140 | Гладкий |
апельсин | 150 | Бугристый |
яблоко | 120 | Гладкий |
апельсин | 170 | Бугристый |
яблоко | 110 | Гладкий |
апельсин | 180 | Бугристый |
Вот кию. DTC принимает вход и говорит: «Хм. Если текстура гладкая и вес составляет около 140, фрукты, вероятно, будет яблоком» Но тогда он получает следующий вход И так написано: “Ой. Если текстура ухабистая, и вес составляет около 150, фрукты, скорее всего, будут оранжевым « .
Ага! Таким образом, в течение периода обучения его слегка продолжается регулировать Параметры Всякий раз, когда он получает новые данные. При тестировании никаких параметров не изменяются, но он прогнозирует возможные плоды после повторения допроса. Вот изображение другой модели DTC 4 :
Простое дерево решений
Давайте код!
Чтобы запустить этот код, вы можете либо использовать Google Colab или создать и принять участие в Pythonanywhere а затем создать новый файл сказать Решение .py
и начать кодирование. Убедитесь, что у вас есть аналогичная структура каталога:
. ├── decision.py ├── hello_ai.py ├── templates └── index.html 1 directory, 3 files
decision.py
from sklearn import tree features = [[140, 1], [130, 1], [150, 0], [170, 0], [110, 1], [180, 0]] # inputs fruits = [1, 1, 0, 0, 1, 0] # outputs clf = tree.DecisionTreeClassifier().fit(features, fruits) # training print(clf.predict([[160, 0]])) # testing
Этот классификатор принимает только числовые входы, поэтому мы только что закодировали его как:
1 | яблоко | Гладкий |
0 | апельсин | Бугристый |
.соответствовать ()
Метод (или функция) – это то, что поезда наш классификатор. Наконец .pedict ()
Метод используется, чтобы рассказать, является ли новая пара функции (вес и текстура) яблоком или апельсином.
Сейчас мы планируем его принять его, я изменил код, чтобы сделать его немного больше Пакет дружелюбно. Так вот наш новый Решение .py
:
from sklearn import tree features = [[140, 1], [130, 1], [150, 0], [170, 0], [110, 1], [180, 0]] # let 1 = smooth & 0 = bumpy fruits = [1, 1, 0, 0, 1, 0] # let 1 = apples & 0 = oranges class Fruit: def __init__(self, weight, texture): self.clf = tree.DecisionTreeClassifier() self.wt = weight self.txt = 1 if texture == 'smooth' else 0 def train(self): self.clf = self.clf.fit(features, fruits) def test(self): return 'Orange' if self.clf.predict([[self.wt, self.txt]]) == [0] else 'Apple'
Колбу Это хорошо знают микро-каркас Python для веб (WSGI 5 ) приложений. Так что наше веб-приложение будет выглядеть что-то подобное:
Бэкэнда (не модный;) – это то, что мы только что написали Решение .py
Отказ Давайте первым кодом И тогда я объясню, как это работает:
hello_ai.py
from flask import Flask, render_template, request from decision import Fruit app = Flask(__name__) @app.route("/", methods=['GET', 'POST']) def index(): weight = texture = result = 0 if request.method == 'POST': weight = request.form['weight'] texture = request.form['texture'] fruit = Fruit(weight, result) fruit.train() result = fruit.test() return render_template("index.html", title="Hello AI", value=result) else: return render_template("index.html", title="Hello AI") if __name__ == '__main__': app.run() # disable debug=True in production
Это приложение Flask делает веб-страницу HTML (что мы увидим в данный момент) и на основании запроса от веб-страницы, требуемые данные передаются от Решение .py
к index.html
Отказ И за эту колбу использует Получить
& Пост
методы.
index.html.
AI WebApp {{title}}
Predicted Fruit: {{ value }}
Сейчас HTML
не нуждается без выяснения. Это {{значение}}
где прогнозируемый фрукт будет вставлен. Вот и все! Ваше первое приложение AI готов к развернуту!
Время для шоу! Есть много услуг хостинга, доступных в Интернете, но для удобства и простоты настройки мы будем использовать Pythonanywhere Отказ
Шаги для развертывания:
- Зарегистрироваться @ https://pythonanyway.com Отказ
Открыть Веб Вкладка и нажмите Добавить новое веб-приложение кнопка сверху слева.
- Нажмите Следующий и выберите Колбы
- Выберите любой Python3.x версия.
- Назовите ваше приложение как
hello_ai.py
и ударил Готово Отказ - Прокрутите по текущей странице и кнопку переключения Сила https Чтобы включить это.
- Открыть Файлы вкладка и перейдите к
MySite
Папка удаляет существующий файл и загрузите файлыhello_ai.py
,Решение .py
Отказ - Создать новую папку с именем
Шаблоны
и загрузкаindex.html
к этому. - Наконец, перейдите к Веб Вкладка и нажмите Перезагрузить username.PYTHONANEWHEAGE.com.
- Проверьте свой WebApp
username.pythonanywhere.com
!
Привет Ай.
Бинго! Вы только что принимали ваше первое искусственно интеллектуальное веб-приложение!
Это забавный проект, который вы можете попробовать без расходов, кроме вашего времени и внимания. Я многому научился, когда сделал это, надеюсь, ты тоже. Поделитесь своими мыслями в комментариях ниже. Спасибо за чтение!
Ссылки и информация
1 Машинное обучение нулю до героя @ Google IO’19 2 Рецепты машин обучения Джош Гордон @ Google 3 Дерево решений Обучение 4 Дерево решений 5 Интерфейс Web Server
- Смотрите .. Здесь (бесполезное) обучение происходит каждый раз, когда запрос с веб-страницы отправляется.
- Это развертывание, очевидно, очень незрено, поэтому вы можете рассмотреть такие варианты, как Докер С Кубернаны или Heroku Отказ
Оригинал: “https://dev.to/joe733/your-first-a-i-web-app-5bnf”