Рубрики
Без рубрики

Ваш первый А.И. Веб-приложение!

Здравствуйте, сообщество DEV! На прошлой неделе я и мой друг Shaheen имели привилегию, чтобы взять вебинар на мягкой … Помечено первым месторождением, Python, начинающими, машины.

Здравствуйте, сообщество 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}}

Predict Fruit


Predicted Fruit: {{ value }}

Сейчас HTML не нуждается без выяснения. Это {{значение}} где прогнозируемый фрукт будет вставлен. Вот и все! Ваше первое приложение AI готов к развернуту!

Время для шоу! Есть много услуг хостинга, доступных в Интернете, но для удобства и простоты настройки мы будем использовать Pythonanywhere Отказ

Шаги для развертывания:

  1. Зарегистрироваться @ https://pythonanyway.com Отказ
  2. Открыть Веб Вкладка и нажмите Добавить новое веб-приложение кнопка сверху слева.

    • Нажмите Следующий и выберите Колбы
    • Выберите любой Python3.x версия.
  3. Назовите ваше приложение как hello_ai.py и ударил Готово Отказ
  4. Прокрутите по текущей странице и кнопку переключения Сила https Чтобы включить это.
  5. Открыть Файлы вкладка и перейдите к MySite Папка удаляет существующий файл и загрузите файлы hello_ai.py , Решение .py Отказ
  6. Создать новую папку с именем Шаблоны и загрузка index.html к этому.
  7. Наконец, перейдите к Веб Вкладка и нажмите Перезагрузить username.PYTHONANEWHEAGE.com.
  8. Проверьте свой 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”