Python tutorial на русском: Самоучитель Python | Python 3 для начинающих и чайников

Содержание

Добро пожаловать во Flask — Документация Flask (русский перевод) 0.10.1

Оригинал этой страницы находится по адресу http://flask-russian-docs.readthedocs.io/

Краткое содержание: Попытка «человеческого» (не машинного, не кальки с английского) перевода документации к пакету Flask (язык программирования Python 2 и 3), выполненного с учётом синтаксиса русского языка. Приглашаю поучаствовать в переводе и в устранении ошибок и недостатков. Перевод выполняется как хобби в свободное время, с целью внесения посильного вклада в развитие и продвижение СПО. При распространении ссылка на первоисточник и указание авторства обязательны.

Состояние перевода: на 10.03.2018 выполнено 62%. В целях ликвидации многочисленных «висячих» ссылок добавлен раздел API на начальной стадии перевода. Исправлено большинство опечаток. Бэкпортированы некоторые мелкие исправления из свежих правок оригинальной документации. Подключены дополнительные модули для формирования межсайтовых ссылок.

Замечания и предложения можно оставить здесь: https://bitbucket.org/ferm32/flask-russian-docs/issues

либо отправить на почту ferm32 животное гмыло дот ком

либо оставлять через сервис Disqus комментарии (внизу страницы).

Существенная часть перевода к версии 0.9 выполнена Владимиром Ступиным

Добро пожаловать в документацию по Flask. Она разбита на следующие части. Рекомендуем начать с раздела Инсталляция, затем заглянуть в Быстрый старт. Помимо раздела «Быстрый старт», есть и более детальное руководство — Учебник, по которому можно создать вместе с Flask хоть и небольшое, но полноценное приложение. Если вы хотите погрузиться во «внутренности» Flask, посмотрите документацию по API (перевод на начальной стадии). Общие шаблоны описаны в разделе Заготовки для Flask.

Flask требует наличия двух внешних библиотек: шаблонизатора Jinja2 и инструментария WSGI Werkzeug. Здесь данные библиотеки не рассматриваются. Если захотите углубиться в их документацию, воспользуйтесь следующими ссылками:

Руководство пользователя

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

Справка об API

Если Вы ищите информацию по конкретным функции, классу или мотоду, эта часть документации для Вас.

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

Здесь заметки для заинтересованных — о дизайне, правовая информация и лог изменений.

Python в Visual Studio. Руководство. Шаг 1 — создание проекта

  • Чтение занимает 3 мин

В этой статье

Python — это популярный язык программирования, который отличается надежностью, гибкостью и простотой освоения. Его можно бесплатно использовать на любых операционных системах, и он поддерживается широким сообществом разработчиков. Кроме того, для него доступно множество бесплатных библиотек.Python is a popular programming language that is reliable, flexible, easy to learn, free to use on all operating systems, and supported by both a strong developer community and many free libraries. Python поддерживает все способы разработки, включая веб-приложения, веб-службы, классические приложения, скрипты и научные вычисления. Его используют многие университеты, ученые, профессиональные и непрофессиональные разработчики.The language supports all manners of development, including web applications, web services, desktop apps, scripting, and scientific computing and is used by many universities, scientists, casual developers, and professional developers alike.

Visual Studio обеспечивает первоклассную поддержку языка Python.Visual Studio provides first-class language support for Python. В этом учебнике рассматриваются перечисленные ниже действия.This tutorial guides you through the following steps:

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

Вы также можете использовать более раннюю версию Visual Studio с установленным подключаемым модулем Инструменты Python для Visual Studio.You can also use an earlier version of Visual Studio with the Python Tools for Visual Studio installed. См. руководство по установке поддержки Python в Visual Studio.See Install Python support in Visual Studio.

Шаг 1. Создание проекта PythonStep 1: Create a new Python project

С помощью проекта в Visual Studio производится управление всеми файлами, составляющими приложение, включая исходный код, ресурсы, конфигурации и другие данные.A

project is how Visual Studio manages all the files that come together to produce a single application, including source code, resources, configurations, and so on. Проект формализует и обеспечивает взаимосвязь между всеми файлами проекта, а также между ними и внешними ресурсами, которые используются несколькими проектами.A project formalizes and maintains the relationship between all the project’s files as well as external resources that are shared between multiple projects. Таким образом, благодаря проектам расширять и развивать приложение становится гораздо проще, чем когда вы контролируете взаимосвязи в произвольных папках, скриптах, текстовых файлах или даже у себя в голове.As such, projects allow your application to effortlessly expand and grow much easier than simply managing a project’s relationships in ad hoc folders, scripts, text files, and even your own mind.

В этом учебнике вы начнете работу с простого проекта, содержащего один пустой файл кода.In this tutorial you begin with a simple project containing a single, empty code file.

  1. В Visual Studio выберите Файл > Создать > Проект (CTRL+SHIFT+N), после чего откроется диалоговое окно Создание проекта.In Visual Studio, select File > New > Project (Ctrl+Shift+N), which brings up the New Project dialog. В нем можно просмотреть шаблоны для разных языков, после чего выбрать один из них для вашего проекта и указать, куда среда Visual Studio должна поместить файлы.Here you browse templates across different languages, then select one for your project and specify where Visual Studio places files.

  2. Чтобы просмотреть шаблоны Python, выберите Установленные > Python в области слева или выполните поиск по слову «Python».To view Python templates, select Installed > Python on the left, or search for «Python». Поиск — это отличный способ найти шаблон, если вы не помните, где он находится в дереве языков.Using search is a great way to find a template when you can’t remember its location in the languages tree.

    Обратите внимание на то, что поддержка Python в Visual Studio включает в себя ряд шаблонов проектов, включая веб-приложения на платформах Bottle, Flask и Django.Notice how Python support in Visual Studio includes a number of project templates, including web applications using the Bottle, Flask, and Django frameworks. Однако для целей данного пошагового руководства мы начнем с пустого проекта.For the purposes of this walkthrough, however, let’s start with an empty project.

  3. Выберите шаблон Приложение Python, укажите имя проекта и нажмите кнопку ОК.Select the Python Application template, specify a name for the project, and select OK.

  4. Через несколько секунд в окне обозревателя решений Visual Studio (1) будет показана структура проекта.After a few moments, Visual Studio shows the project structure in the Solution Explorer window (1). Файл кода по умолчанию откроется в редакторе (2).The default code file is open in the editor (2). Кроме того, откроется окно Свойства (3), в котором приводятся дополнительные сведения для элемента, выбранного в обозревателе решений, включая его точное расположение на диске.The

    Properties window (3) also appears to show additional information for any item selected in Solution Explorer, including its exact location on disk.

  5. Потратьте несколько минут на знакомство с обозревателем решений, который служит для просмотра файлов и папок проекта.Take a few moments to familiarize yourself with Solution Explorer, which is where you browse files and folders in your project.

    (1) Полужирным шрифтом выделен ваш проект, имя которого вы указали в окне Создание проекта.(1) Highlighted in bold is your project, using the name you gave in the New Project dialog. На диске этот проект представлен файлом .pyproj в папке проекта.On disk, this project is represented by a .pyproj file in your project folder.

    (2) На верхнем уровне находится решение, имя которого по умолчанию совпадает с именем проекта.(2) At the top level is a solution, which by default has the same name as your project. Решение, представленное на диске файлом SLN, является контейнером для одного или нескольких связанных проектов.A solution, represented by a .sln file on disk, is a container for one or more related projects. Например, если вы создаете расширение C++ для приложения Python, этот проект C++ может входить в то же решение.For example, if you write a C++ extension for your Python application, that C++ project could reside within the same solution. Решение также может включать в себя проект веб-службы и проекты специальных тестовых программ.The solution might also contain a project for a web service, along with projects for dedicated test programs.

    (3) В проекте можно увидеть файлы исходного кода. В нашем примере это один файл

    .py.(3) Under your project you see source files, in this case only a single .py file. При выборе файла его свойства приводятся в окне Свойства.Selecting a file displays its properties in the Properties window. Если дважды щелкнуть файл, он откроется в соответствующем средстве.Double-clicking a file opens it in whatever way is appropriate for that file.

    (4) Кроме того, в проекте есть узел Окружения Python.(4) Also under the project is the Python Environments node. Если развернуть его, можно увидеть доступные интерпретаторы Python.When expanded, you see the Python interpreters that are available to you. Развернув узел интерпретатора, вы увидите библиотеки, установленные в этой среде (5).Expand an interpreter node to see the libraries that are installed into that environment (5).

    Щелкните правой кнопкой мыши любой узел или элемент в

    обозревателе решений, чтобы открыть меню с применимыми командами.Right-click any node or item in Solution Explorer to access a menu of applicable commands. Например, с помощью команды Переименовать можно изменить имя любого узла или элемента, включая проект и решение.For example, the Rename command allows you to change the name of any node or item, including the project and the solution.

Следующий шагNext step

Дополнительные подробностиGo deeper

ru-python-beginners/faq: Русскоязычный краудсорсинговый проект помощи начинающим python разработчикам

GitHub — ru-python-beginners/faq: Русскоязычный краудсорсинговый проект помощи начинающим python разработчикам

Русскоязычный краудсорсинговый проект помощи начинающим python разработчикам

Files

Permalink Failed to load latest commit information.

Type

Name

Latest commit message

Commit time

В этом репозитории находится полезная информация, собранная участниками чата.

С чего начать

Официальная документация:

Редакторы и IDE

Книги

Для начинающих хорошо подойдет какая-нибудь из нижеперечисленных:

Ещё есть канал с книгами:

Туториалы и статьи

На английском

На русском

Полезные ресурсы

На английском

На русском

Видео

Youtube: Python

Youtube: Программирование

Стримы

Курсы

Задачи

Гайд по работе

Чаты для обсуждения и взаимопомощи

Telegram

Slack

Перед тем, как задать вопрос

Отправка фрагментов кода в чат

Не приветствуются скриншоты кода.

Небольшие фрагменты кода необходимо расположить внутри обратных кавычек (backtick, кнопка ‘ё’ в латинской раскладке, слева от кнопки 1).

Для однострочных фрагментов:

`source code example`

Для многострочных (до 10 строк) фрагментов:

```
source
    code
        example
```

Если необходимо отправить более 10 строк, используйте сторонние сервисы:

About

Русскоязычный краудсорсинговый проект помощи начинающим python разработчикам

Resources

License

You can’t perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Keras Tutorial: Руководство для начинающих по глубокому обучению на Python — Python 3 | Data Science | Нейронные сети | AI

Содержание страницы

Keras Tutorial: Руководство для начинающих по глубокому обучению на Python 3

В этом пошаговом руководстве по Keras вы узнаете, как построить сверточную нейронную сеть на Python!

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

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

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

Вступительная часть по Keras Tutorial Python 3

Для начала изучения машинного обучения на Python с библиотекой Keras, желательно, чтобы Вы:

  • Понимали основные концепции машинного обучения
  • Имели навыки программирования на Python

Почему Keras?

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

Типичные рабочие процессы Keras выглядят так:

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

Что такое глубокое обучение?

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

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

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

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

Что такое сверточные нейронные сети (Convolutional Neural Networks CNN)?

Короче говоря, сверточные нейронные сети (CNN) представляют собой многослойные нейронные сети (иногда до 17 или более слоев), которые предполагают, что входные данные являются изображениями.

Типичная архитектура CNN:

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

Их основная механика выходит за рамки этого урока, но вы можете прочитать о них здесь.

Чем эта статья не является

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

Если вы заинтересованы в овладении теорией глубокого обучения, мы рекомендуем этот замечательный курс из Стэнфорда:

О моделях Keras

В Keras доступно два основных типа моделей: последовательная модель и класс Model, используемый с функциональным API .

Эти модели имеют ряд общих методов и атрибутов:

  • model.layers это плоский список слоев, составляющих модель.
  • model.inputs список входных тензоров модели.
  • model.outputs список выходных тензоров модели.
  • model.summary()печатает краткое представление вашей модели.
  • model.get_config()возвращает словарь, содержащий конфигурацию модели.
  • model.get_weights() возвращает список всех весовых тензоров в модели в виде массивов Numpy.
  • model.set_weights(weights)устанавливает значения весов модели из списка массивов Numpy. Массивы в списке должны иметь ту же форму, что и возвращаемые get_weights().
  • model.to_json()возвращает представление модели в виде строки JSON. Обратите внимание, что представление не включает веса, только архитектуру.
  • model.to_yaml()возвращает представление модели в виде строки YAML. Обратите внимание, что представление не включает веса, только архитектуру.
  • model.save_weights(filepath) сохраняет вес модели в виде файла HDF5.
  • model.load_weights(filepath, by_name=False)загружает вес модели из файла HDF5 (созданного save_weights). По умолчанию ожидается, что архитектура не изменится.
Методы API последовательной модели (Sequential model API)
Компиляция — Compile
compile(
        optimizer, 
        loss=None, 
        metrics=None, 
        loss_weights=None, 
        sample_weight_mode=None, 
        weighted_metrics=None, 
        target_tensors=None
)

Настраивает модель для обучения.

Аргументы:

  • optimizer: строка (имя оптимизатора) или экземпляр оптимизатора.
  • loss (потеря): строка (имя целевой функции) или целевая функция или Lossэкземпляр. Смотрите потери. Если модель имеет несколько выходов, вы можете использовать разные потери на каждом выходе, передав словарь или список потерь. Значение потерь, которое будет минимизировано моделью, будет тогда суммой всех индивидуальных потерь.
  • metrics: список метрик, которые будут оцениваться моделью во время обучения и тестирования. Как правило, вы будете использовать metrics=['accuracy']. Чтобы указать разные метрики для разных выходов модели с несколькими выходами, вы также можете передать словарь, например metrics={'output_a': 'accuracy', 'output_b': ['accuracy', 'mse']}. Вы также можете передать список (len = len (выводы)) списков метрик, таких как metrics=[['accuracy'], ['accuracy', 'mse']]или metrics=['accuracy', ['accuracy', 'mse']].
  • loss_weights: необязательный список или словарь, задающий скалярные коэффициенты (числа Python) для взвешивания вкладов потерь в различные выходные данные модели. Значение потерь, которое будет минимизировано моделью, будет затем взвешенной суммой всех индивидуальных потерь, взвешенных по loss_weightsкоэффициентам. Если список, ожидается, что он будет иметь соотношение 1: 1 к выходам модели. Если это диктат, ожидается, что выходные имена (строки) будут сопоставлены скалярным коэффициентам.
  • sample_weight_mode: Если вам нужно сделать взвешивание выборки по временным шагам (2D веса), установите это значение "temporal"Noneпо умолчанию используются веса выборки (1D). Если модель имеет несколько выходов, вы можете использовать разные sample_weight_modeна каждом выходе, передав словарь или список режимов.
  • weighted_metrics: список метрик, которые будут оцениваться и взвешиваться по sample_weight или class_weight во время обучения и тестирования.
  • target_tensors: по умолчанию Keras создаст заполнители для цели модели, которые будут снабжены целевыми данными во время обучения. Если вместо этого вы хотите использовать свои собственные целевые тензоры (в свою очередь, Keras не будет ожидать внешних данных Numpy для этих целей во время обучения), вы можете указать их с помощью target_tensorsаргумента. Это может быть один тензор (для модели с одним выходом), список тензоров или точные сопоставления выходных имен с целевыми тензорами.
  • **kwargs: при использовании бэкэндов Theano / CNTK эти аргументы передаются в K.function. При использовании бэкэнда TensorFlow эти аргументы передаются в tf.Session.run.
fit

Обучает модель для фиксированного числа эпох (итераций в наборе данных).

fit(
        x=None, 
        y=None, 
        batch_size=None, 
        epochs=1, 
        verbose=1, 
        callbacks=None, 
        validation_split=0.0, 
        validation_data=None, 
        shuffle=True, 
        class_weight=None, 
        sample_weight=None, 
        initial_epoch=0, 
        steps_per_epoch=None, 
        validation_steps=None, 
        validation_freq=1, 
        max_queue_size=10, 
        workers=1, 
        use_multiprocessing=False
)

Аргументы:

  • x: входные данные. Это может быть:
    • Массив Numpy (или похожий на массив) или список массивов (в случае, если модель имеет несколько входов).
    • Диктовое отображение (dict mapping) входных имен в соответствующий массив / тензоры, если модель имеет именованные входы.
    • Генератор или keras.utils.Sequenceвозвращение (inputs, targets)или (inputs, targets, sample weights).
    • None (default) — Нет (по умолчанию) при подаче из тензоров, встроенных в каркас (например, тензоры данных TensorFlow).
  • y: целевые данные. Как и входные данные x, это могут быть либо массив (ы) Numpy, тензор (ы), встроенные в платформу, список массивов Numpy (если модель имеет несколько выходных данных), либо None (по умолчанию), если они поступают из тензоров, встроенных в платформу (например, TensorFlow) тензоры данных). Если выходным слоям в модели присвоены имена, вы также можете передать словарь, отображающий выходные имена в массивы Numpy. If xявляется генератором или  keras.utils.Sequence экземпляром, y указывать не следует (поскольку цели будут получены из x).
  • batch_size: целое число или None. Количество образцов на обновление градиента. Если batch_sizeне указан, по умолчанию будет 32. Не указывайте, batch_sizeесли ваши данные представлены в виде символических тензоров, генераторов или Sequenceэкземпляров (так как они генерируют пакеты).
  • epochs: целочисленные. Количество эпох для обучения модели. Эпоха — это итерация по всему xи y предоставленным данным. Обратите внимание, что в сочетании с initial_epochepochsследует понимать как «конечную эпоху». Модель не обучается для ряда итераций, заданных epochs, а просто до тех пор, пока не epochsбудет достигнута эпоха индекса .
  • verbose: Integer. 0, 1 или 2. Режим многословия. 0 = тихий, 1 = индикатор выполнения, 2 = одна строка за эпоху.
  • callbacks: список keras.callbacks.Callbackэкземпляров. Список обратных вызовов, применяемых во время обучения и проверки (если). Смотрите обратные вызовы.
  • validation_split: с плавающей точкой от 0 до 1. Доля данных обучения, которые будут использоваться в качестве данных проверки. Модель выделит эту часть обучающих данных, не будет обучаться им и будет оценивать потери и любые метрики модели на этих данных в конце каждой эпохи. Данные проверки выбираются из последних выборок xи yпредоставленных данных перед перетасовкой. Этот аргумент не поддерживается, когда он xявляется генератором или Sequenceэкземпляром.
  • validation_data:

    данные для оценки потерь и любые метрики модели в конце каждой эпохи. Модель не будет обучаться на этих данных. validation_dataперекроет validation_splitvalidation_dataможет быть: — кортеж (x_val, y_val)массивов или тензоров (x_val, y_val, val_sample_weights)Numpy — кортеж массивов Numpy — набор данных или итератор набора данных

    Для первых двух случаев, batch_sizeдолжны быть предоставлены. Для последнего случая, validation_stepsдолжны быть предоставлены.

  • shuffle: Boolean (следует ли перемешивать данные тренировки перед каждой эпохой) или str (для «партии»). «пакетная» — это специальная опция для работы с ограничениями данных HDF5; он тасуется кусками размером с партию. Не имеет эффекта, когда steps_per_epochнет None.

  • class_weight: необязательный словарь, отображающий индексы класса (целые числа) на значение веса (с плавающей запятой), используемое для взвешивания функции потерь (только во время обучения). Это может быть полезно для того, чтобы сказать модели «уделять больше внимания» выборкам из недопредставленного класса.

  • sample_weight: необязательный массив весов Numpy для обучающих выборок, используемый для взвешивания функции потерь (только во время обучения). Вы можете либо передать плоский (1D) массив Numpy такой же длины, что и входные выборки (отображение весов и выборок 1: 1), либо в случае временных данных вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разный вес для каждого временного шага каждого образца. В этом случае вы должны обязательно указать sample_weight_mode="temporal"в compile(). Этот аргумент не поддерживается, когда xгенератор или Sequenceэкземпляр вместо этого предоставляют sample_weights в качестве третьего элемента x.
  • initial_epoch: целое число. Эпоха, с которой начинается тренировка (полезно для возобновления предыдущего тренировочного заезда).
  • steps_per_epoch: целое число или None. Общее количество шагов (партий образцов) до объявления одной эпохи законченной и начала следующей эпохи. При обучении с использованием входных тензоров, таких как тензоры данных TensorFlow, значение по умолчанию Noneравно числу выборок в вашем наборе данных, деленному на размер пакета, или 1, если это невозможно определить.
  • validation_steps: только релевантно, если  steps_per_epoch  указано. Общее количество шагов (партий образцов) для проверки перед остановкой.
  • validation_steps: релевантно, только если validation_dataпредоставлено и является генератором. Общее количество шагов (партий образцов), которые нужно нарисовать перед остановкой при выполнении проверки в конце каждой эпохи.
  • validation_freq: уместно, только если предоставлены данные проверки. Целое число или список / кортеж / набор. Если целое число, указывает, сколько тренировочных эпох должно быть выполнено до того, как будет выполнен новый прогон проверки, например, validation_freq=2выполняет проверку каждые 2 эпохи. Если в списке, кортеже или наборе указываются эпохи, в которых нужно выполнять проверку, например, validation_freq=[1, 2, 10]выполняет проверку в конце 1-й, 2-й и 10-й эпох.
  • max_queue_size: целое число. Используется только для генератора или keras.utils.Sequence входа. Максимальный размер очереди генератора. Если не указано, по max_queue_sizeумолчанию будет 10.
  • workers: целое число. Используется только для генератора или keras.utils.Sequenceвхода. Максимальное количество процессов, которые могут ускоряться при использовании потоков на основе процессов. Если не указан, по workers умолчанию будет 1. Если 0, будет запускать генератор в основном потоке.
  • use_multiprocessing: Boolean. Используется только для генератора или keras.utils.Sequenceвхода. Если True, используйте процессные потоки. Если не указано, по use_multiprocessingумолчанию False. Обратите внимание, что, поскольку эта реализация опирается на многопроцессорность, вы не должны передавать невыгружаемые аргументы генератору, так как они не могут быть легко переданы дочерним процессам.
  • **kwargs: используется для обратной совместимости.

Краткий обзор учебника/статьи по Keras

Вот перечень шагов для создания вашей первой сверточной нейройнной сети (CNN) с использованием Keras:

  1. Настройте свою среду.
  2. Установите Керас / Keras.
  3. Импорт библиотек и модулей.
  4. Загрузить данные изображения из MNIST.
  5. Предварительная обработка входных данных для Keras.
  6. Метки препроцесс-класса для Keras.
  7. Определите архитектуру модели.
  8. Скомпилируйте модель.
  9. Подгонка модели по тренировочным данным.
  10. Оценить модель по данным испытаний.

Шаг 1: Настройте свою рабочую среду

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

  • Python 2.7+ (Python 3 тоже хорошо, но Python 2.7 все еще более популярен для науки о данных в целом)
  • SciPy с NumPy
  • Matplotlib (необязательно, рекомендуется для исследовательского анализа)
  • Theano * ( Инструкция по установке )

Theano — это библиотека Python, которая позволяет нам так эффективно оценивать математические операции, включая многомерные массивы. В основном он используется при создании проектов глубокого обучения. Он работает намного быстрее на графическом процессоре (GPU), чем на CPU. Theano достигает высоких скоростей, что создает жесткую конкуренцию реализациям на языке C для задач, связанных с большими объемами данных.
Theano знает, как брать структуры и преобразовывать их в очень эффективный код, который использует numpy и некоторые нативные библиотеки. Он в основном предназначен для обработки типов вычислений, требуемых для алгоритмов больших нейронных сетей, используемых в Deep Learning. Именно поэтому, это очень популярная библиотека в области глубокого обучения.

Рекомендуется установить Python, NumPy, SciPy и matplotlib через дистрибутив Anaconda. Он поставляется со всеми этими пакетами.

Conda Cheatsheet: command line package and environment manager.pdf


Краткий обзор как настроить Анаконду здесь:

Инструкция по Anaconda & Conda. Как управлять и настроить среду для Python?

* Примечание: TensorFlow также поддерживается (как альтернатива Theano), но мы придерживаемся Theano для простоты. Основное отличие состоит в том, что вам необходимо изменить данные немного по-другому, прежде чем передавать их в свою сеть.

Еще раз пробежимся по устанавливаемым библиотекам:

SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave, R-Lab и SciLab.

Matplotlib — библиотека на языке программирования Python для визуализации данных.

Theano — библиотека, которая используется для разработки систем машинного обучения как сама по себе, так и в качестве вычислительного бекэнда для более высокоуровневых библиотек, например, Lasagne, Keras или Blocks.

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

Проверим правильно ли мы все установили

Переходим в Jupyter Notebook в среде, которая имеет установленные библиотеки/пакеты. Запускаем следующие команды:

1. Для проверки среды:

import sys
print(sys.version)
print(sys.base_prefix)

Результата:

3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)]
C:\Users\User\.conda\envs\MyNewEnvironmentName

2. Для проверки библиотек:

import numpy as np
import theano as th
import keras as kr
import matplotlib as mpl

print('numpy:' + np.__version__)
print('theano:' + th.__version__)
print('keras:' + kr.__version__)
print('matplotlib:' + mpl.__version__)

Результат:

numpy:1.17.4
theano:1.0.4
keras:2.2.4
matplotlib:3.1.1

Как это выглядит в Jupyter Notebook:

Шаг 2. Импортируем библиотеки и модули для нашего проекта

Удаляем предыдущие проверочные шаги из Notebook.

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

import numpy as np
np.random.seed(123)  # for reproducibility

Далее мы импортируем тип модели Sequential из Keras. Это просто линейный набор слоев нейронной сети, и он идеально подходит для того типа CNN с прямой связью, который мы строим в этом руководстве.

from keras.models import Sequential

Далее, давайте импортируем «основные» слои из Keras. Это слои, которые используются практически в любой нейронной сети:

from keras.layers import Dense, Dropout, Activation, Flatten

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

from keras.layers import Convolution2D, MaxPooling2D

Наконец, мы импортируем некоторые утилиты. Это поможет нам преобразовать наши данные позже:

from keras.utils import np_utils

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

Полный текст скрипта после шага 2:
import numpy as np
np.random.seed(123)  # for reproducibility

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils

Шаг 3. Загружаем изображения из MNIST

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

Библиотека Keras удобно уже включает это. Мы можем загрузить это так:

from keras.datasets import mnist
 
# Load pre-shuffled MNIST data into train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

Мы можем посмотреть на форму набора данных:

print(X_train.shape)

Результат:

(60000, 28, 28)

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

from matplotlib import pyplot as plt
plt.imshow(X_train[0])

Вывод изображения:

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

Полный скрипт после шага 3
import numpy as np
np.random.seed(123)  # for reproducibility

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist

from matplotlib import pyplot as plt
 
# Загрузка предварительно перемешанных данных MNIST в наборы trains и tests
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# Форма набора данных
print(X_train.shape)

# Вывод изображения
plt.imshow(X_train[0])

Шаг 4: Предварительная обработка входных данных для Keras

При использовании бэкэнда Theano вы должны явно объявить размер для глубины входного изображения. Например, полноцветное изображение со всеми 3  каналами RGB будет иметь глубину 3.

Наши изображения MNIST имеют глубину только 1, но мы должны явно объявить это.

Другими словами, мы хотим преобразовать наш набор данных из формы (n, ширина, высота) в (n, глубина, ширина, высота).

Вот как мы можем сделать это легко:

X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)

Чтобы подтвердить, мы можем снова напечатать размеры X_train:

print(X_train.shape)

Результат:

(60000, 1, 28, 28)

Последний шаг предварительной обработки для входных данных — преобразовать наш тип данных в float32 и нормализовать наши значения данных в диапазоне [0, 1].

X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255

Теперь наши входные данные готовы к обучению модели.

Полный текст скрипта после 4 шага
import numpy as np
np.random.seed(123)  # для воспроизводимости

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist

from matplotlib import pyplot as plt
 
# Загрузка предварительно перемешанных данных MNIST в наборы trains и tests
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# Форма набора данных
print("=== Результат X_train.shape ===")
print(X_train.shape)

# Вывод изображения
plt.imshow(X_train[0])

# Преобразование набора данных из формы (n, ширина, высота) в (n, глубина, ширина, высота)
X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)

# Вывод размеров X_train
print("=== Результат X_train.shape ===")
print(X_train.shape)

# Преобразование типа данных в float32
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# Нормализация значений данных в диапазоне [0, 1]
X_train /= 255
X_test /= 255

Шаг 5. Предварительная обработка меток классов для Keras

Далее, давайте посмотрим на форму наших данных меток классов:

print(y_train.shape)

Результат:

(60000,)

Хм … это может быть проблематично. У нас должно быть 10 разных классов, по одному на каждую цифру, но, похоже, у нас есть только одномерный массив. Давайте посмотрим на ярлыки для первых 10 учебных образцов:

print(y_train[:10])

Результат:

[5 0 4 1 9 2 1 3 1 4]

И есть проблема. Данные y_train и y_test не разделены на 10 различных меток классов, а представлены в виде одного массива со значениями классов.

Мы можем это легко исправить:

# Convert 1-dimensional class arrays to 10-dimensional class matrices
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)

Метод np_utils.to_categorical — Преобразует вектор класса (целые числа) в двоичную матрицу классов.

Теперь мы можем взглянуть еще раз:

print(Y_train.shape)

Результат:

(60000, 10)
Полный текст скрипта после 5 шага
import numpy as np
np.random.seed(123)  # для воспроизводимости

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist

from matplotlib import pyplot as plt
 
# Загрузка предварительно перемешанных данных MNIST в наборы trains и tests
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# Форма набора данных
print("=== Результат X_train.shape ===")
print(X_train.shape)

# Вывод изображения
plt.imshow(X_train[0])

# Преобразование набора данных из формы (n, ширина, высота) в (n, глубина, ширина, высота)
X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)

# Вывод размеров X_train
print("=== Результат X_train.shape ===")
print(X_train.shape)

# Преобразование типа данных в float32
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# Нормализация значений данных в диапазоне [0, 1]
X_train /= 255
X_test /= 255

# Просмотр формы меток классов наших данных
print("=== Результат y_train.shape ===")
print(y_train.shape)

print("=== Результат y_train[:10] ===")
print(y_train[:10])

# Преобразование одномерных массивов классов в 10-мерные матрицы классов
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)

# Вывод после преобразования
print("=== Результат Y_train.shape после np_utils.to_categorical ===")
print(Y_train.shape)

Результат:

=== Результат X_train.shape ===
(60000, 28, 28)

=== Результат X_train.shape ===
(60000, 1, 28, 28)

=== Результат y_train.shape ===
(60000,)

=== Результат y_train[:10] ===
[5 0 4 1 9 2 1 3 1 4]

=== Результат Y_train.shape после np_utils.to_categorical ===
(60000, 10)

Шаг 6: Зададим архитектуру модели нейронной сети

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

Чтобы продолжать этот урок, мы не будем обсуждать здесь теорию или математику.

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

Начнем с объявления последовательного формата модели:

model = Sequential()

Далее мы объявляем входной слой:

model.add(Conv2D(32,(3, 3), activation = 'relu', input_shape=(1,28,28), data_format='channels_first'))

Входной параметр shape должен иметь форму 1 образца. В этом случае это то же самое (1, 28, 28), которое соответствует (глубина, ширина, высота) каждого изображения цифры.

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

* Примечание. Размер шага по умолчанию равен (1,1), и его можно настроить с помощью параметра «subsample».

Мы можем подтвердить это, напечатав форму текущей модели:

print(model.output_shape)

Результат:

(None, 32, 26, 26)

Затем мы можем просто добавить больше слоев в нашу модель, как будто мы строим legos:

model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

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

MaxPooling2D — это способ уменьшить количество параметров в нашей модели, переместив фильтр пула 2×2 по предыдущему слою и взяв максимум 4 значения в фильтре 2×2.

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

model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

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

Обратите внимание, что конечный слой имеет выходной размер 10, соответствующий 10 классам цифр.

Также обратите внимание, что веса из слоев Convolution должны быть сплющены (сделаны одномерными) перед передачей их в полностью связанный плотный слой.

Вот как выглядит вся архитектура модели:

model = Sequential()

model.add(Conv2D(32,(3, 3), activation = 'relu', input_shape=(1,28,28), data_format='channels_first'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

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

Шаг 7. Скомпилируем модель

Сложная часть уже закончилась.

Теперь нам просто нужно скомпилировать модель, и мы будем готовы обучать ее. Когда мы компилируем модель, мы объявляем функцию потерь и оптимизатор (SGD, Adam и т.д.).

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

Keras имеет множество функций потери и встроенных оптимизаторов на выбор.

Шаг 8. Обучим модель на тестовых данных (тренировочных данных)

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

model.fit(X_train, Y_train, 
          batch_size=32, epochs=10, verbose=1)

Результат:

Epoch 1/10
60000/60000 [==============================] - 38100s 635ms/step - loss: 0.2253 - acc: 0.9337
Epoch 2/10
60000/60000 [==============================] - 728s 12ms/step - loss: 0.1195 - acc: 0.9650
Epoch 3/10
60000/60000 [==============================] - 964s 16ms/step - loss: 0.0927 - acc: 0.9724
Epoch 4/10
60000/60000 [==============================] - 1169s 19ms/step - loss: 0.0778 - acc: 0.9768
Epoch 5/10
60000/60000 [==============================] - 1223s 20ms/step - loss: 0.0709 - acc: 0.9794
Epoch 6/10
60000/60000 [==============================] - 730s 12ms/step - loss: 0.0640 - acc: 0.9809
Epoch 7/10
60000/60000 [==============================] - 749s 12ms/step - loss: 0.0578 - acc: 0.9828
Epoch 8/10
60000/60000 [==============================] - 730s 12ms/step - loss: 0.0554 - acc: 0.9825
Epoch 9/10
60000/60000 [==============================] - 728s 12ms/step - loss: 0.0528 - acc: 0.9848
Epoch 10/10
60000/60000 [==============================] - 719s 12ms/step - loss: 0.0495 - acc: 0.9852

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

Шаг 9: Оценка работы модели на тестовых данных

Наконец, мы можем оценить нашу модель по тестовым данным:

score = model.evaluate(X_test, Y_test, verbose=0)
score

Результат:

[2.3163251502990723, 0.0986]

5 2 голоса

Рейтинг статьи

ТОП-10 книг по Python: эффективно, емко, доходчиво

В любом обучении важен сам процесс и то, какой материал вы используете. Сайт proglib.io опубликовал подборку книг по Python на любой случай.

Список книг по Python

The Python Tutorial

Автор: Yeradis P. Barbosa Marrero

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

Intermediate Python

Автор: Obi Ike-Nwosu

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

Data structures and algorithm using Python

Автор: Rance D. Necaise

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

Изучаем Python

Автор: Марк Лутц

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

Python и анализ данных

Автор: Уэс Маккинли

Достойные Python книги на русском встречаются редко, но это тот случай. Вы научитесь правильно работать и оперировать модулями Python, изучите основы NumPy и NoSQL. Автор рассказывает, как начать работать с инструментами анализа данных в Pandas, а также о создании диаграмм, статических и интерактивных визуализаций с помощью matplotlib.

Изучаем Python. Программирование игр и веб-приложения

Автор: Эрик Мэтиз

Из этой Python книги вы узнаете, как создавать игры, визуализировать различные данные и научитесь создавать веб-приложения на Django. Будут рассмотрены как основы (циклы, списки, классы), так и более углубленные вопросы по типу написания собственной игры.

Python для сложных задач. Наука о данных и машинное обучение

Автор: Дж. Вандер Плас

Если вы работаете в сфере Data Science или хотите узнать что-то новое, то обучение можно начать с данной книги Python. В ней вы найдете ответы на вопросы по вычислительным и статистическим методам, передовым алгоритмам разработки, манипулированию данными и т. д.

Learning to program using Python

Автор: Cody Jackson

Изучаем программирование в легкой и дружественной форме. Эту и другие Python книги скачать можно на нашем Telegram-канале.

​ Глубокое обучение на Python

Автор: Франсуа Шолле

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

Введение в машинное обучение

Авторы: Андреас Мюллер, Сара Гвидо

Без этой Python книги на русском не обойтись. Вы будете использовать библиотеки scikit-learn, NumPy и matplotlib, а также сможете создать свою систему машинного обучения.

Learn Python Programming Tutorial in Russian для Андроид

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

Нет необходимости подключаться к Интернету — просто нажмите кнопку «УСТАНОВИТЬ», с которой вы хотите начать, и следуйте инструкциям. Удачи!

Особенности:
• Все уроки на русском языке
• Отличный пользовательский интерфейс.
• Темы делятся на правильные пути.
• Все темы в автономном режиме: нет необходимости в Интернете
• Содержание с простыми примерами
• Легко понять.
• Программы тренировок
• Копировать и делиться темой с друзьями.
• Онлайн Python Compiler: Запустите вашу программу Python в приложении.
• Python Интервью Вопросы и ответы.

Основное руководство: начните с базового изучения Python. Основной учебник состоит из следующих тем.

• Введение в Python
• Как задать путь в Python
• Типы данных в Python
• Оператор Python If-else
• Оператор Python Switch
• Циклы в Python

Расширенное руководство по комментариям Python :
• Строка Python
• Список Python
• Кортеж Python
• Словарь Python
• Функции Python
• Ввод и вывод Python
• Модуль Python
• Обработка исключений Python
• ООП Python • Наследование Python

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

• Array, String, User Inputs программы
• алгоритмы сортировки.
• алгоритмы поиска.
• рекурсивные программы.

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

Первые шаги в программировании на Python — QGIS Tutorials and Tips

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

Обзор задачи

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

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

Мы будем использовать набор данных Аэропорты <http://www.naturalearthdata.com/downloads/10m-cultural-vectors/airports/> _ из Natural Earth.

Загрузите shape-файл с аэропортами.

Источник данных: [NATURALEARTH]

Методика

  1. В QGIS, перейдите в меню . Перейдите к загруженному файлу ne_10m_airports.zip и нажмите Open. Выберите слой ne_10m_airports.shp и нажмите OK.

  1. Вы увидите слой ne_10m_airports, загруженный в QGIS.

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

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

  1. Вы увидите, что в нижней части окна QGIS открылась новая панель. Вы увидите символы >>> внизу, после которых вы можете вводить команды. Для взаимодействия со средой QGIS мы должны использовать переменную iface. Чтобы получить доступ к текущему активному слою в QGIS, вы можете ввести следующую команду и нажать Enter. Эта команда получает ссылку на текущий загруженный слой и сохраняет её в переменной layer.

layer = iface.activeLayer()
  1. There is a handy function called dir() in python that shows you all available methods for any object. This is useful when you are not sure what functions are available for the object. Run the following command to see what operations we can do on the layer variable.

  1. You will see a long list of available functions. For now, we will use a function called getFeatures() which will gets you the reference to all features of a layer. In our case, each feature will be a point representing an airport. You can type the following command to iterate through each of the features in the current layer. Make sure to add 2 spaces before typing the second line.

for f in layer.getFeatures():
  print f
  1. As you will see in the output, each line contains a reference to a feature within the layer. The reference to the feature is stored in the f variable. We can use the f variable to access the attributes of each feature. Type the following to print the name and iata_code for each airport feature.

for f in layer.getFeatures():
  print f['name'], f['iata_code']
  1. So now you know how to programatically access the attribute of each feature in a layer. Now, let’s see how we can access the coordinates of the feature. The coordinates of a vector feature can be accessed by calling the geometry() function. This function returns a geometry object that we can store in the variable geom. You can run asPoint() function on the geometry object to get the x and y coordinates of the point. If your feature is a line or a polygon, you can use asPolyline() or asPolygon() functions. Type the following code at the prompt and press Enter to see the x and y coordinates of each feature.

for f in layer.getFeatures():
  geom = f.geometry()
  print geom.asPoint()
  1. What if we wanted to get only the x cordinate of the feature? You can call the x() function on the point object and get its x coordinate.

for f in layer.getFeatures():
  geom = f.geometry()
  print geom.asPoint().x()
  1. Now we have all the pieces that we can stitch together to generate our desired output. Type the following code to print the name, iata_code, latitude and longitude of each of the airport features. The %s and %f notations are ways to format a string and number variables.

for f in layer.getFeatures():
  geom = f.geometry()
  print '%s, %s, %f, %f' % (f['name'], f['iata_code'],
         geom.asPoint().y(), geom.asPoint().x())
  1. You can see the output printed on the console. A more useful way to store the output would be in a file. You can type the following code to create a file and write the output there. Replace the file path with a path on your own system. Note that we add \n at the end of our line formatting. This is to add a newline after we add the data for each feature. You should also note the unicode_line = line.encode('utf-8') line. Since our layer contains some features with unicode characters, we can’t simply write it to a text file. We encode the text using the UTF-8 encoding and then write to the text file.

output_file = open('c:/Users/Ujaval/Desktop/airports.txt', 'w')
for f in layer.getFeatures():
  geom = f.geometry()
  line = '%s, %s, %f, %f\n' % (f['name'], f['iata_code'],
          geom.asPoint().y(), geom.asPoint().x())
  unicode_line = line.encode('utf-8')
  output_file.write(unicode_line)
output_file.close()
  1. You can go to the output file location you specified and open the text file. You will see the data from the airports shapefile that we extracted using python scripting.

Please enable JavaScript to view the comments powered by Disqus. comments powered by

Обучение программированию на Python | Обучение программированию

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

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

Кому следует посещать этот курс обучения программированию?

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

Обзор курса программирования на Python

Академия знаний признана во всем мире лидером отрасли в обучении разработчиков программного обеспечения. Наша «Академия кодеров знаний » состоит из более чем 372 ведущих экспертов по программированию на Python, которые в среднем имеют более 17 лет опыта программирования на Python. Наши инструкторы разработали уникальный стиль обучения, чтобы помочь начинающим программистам овладеть искусством программирования на Python.Наши сертифицированные разработчики Python признаны в отрасли как обладающие наивысшим рейтингом работодателей в области программирования. Мы обучаем и развиваем высококвалифицированных программистов, и большинство из них продолжают работать над крупномасштабными корпоративными проектами и получают самые высокие зарплаты в отрасли.

Python во всем мире признан разработчиками программного обеспечения как язык программирования общего назначения высокого уровня. Python был разработан Гвидо ван Россумом летом 1989 года, прославился в 2003 году и приобрел популярность благодаря искусственному интеллекту и машинному обучению.Язык программирования Python был разработан с упором на удобочитаемость кода и приобрел значительную популярность в современном цифровом мире. Python стал очень популярен благодаря простоте написания синтаксиса кода. Начинающие энтузиасты программирования со всего мира теперь соревнуются за создание лучших в мире приложений. Разработчики программного обеспечения Python используют этот язык программирования для создания сценариев и разработки объектно-ориентированного подхода для написания четких, логичных строк кода для крупномасштабных проектов разработки программного обеспечения.

Курс программирования Python Академии знаний предназначен для того, чтобы дать делегатам знания по разработке и сопровождению скриптов Python и платформенно-независимых приложений. По завершении этого курса делегаты должны уметь объявлять переменные и инициализировать их, создавать выражения с арифметическими, логическими и реляционными операторами, управлять текстом с помощью регулярных выражений и многими другими фундаментальными навыками. Запросите сейчас, чтобы получить бесплатную консультацию от сертифицированных инструкторов по Python в Академии знаний !

Чего вы достигнете по окончании курса Python?

  • Развивайте свои навыки работы с функциями, циклами, классами, объектами и PIP с курсом Python
  • Проектирование, разработка и поддержка существующих и новых приложений с использованием Python.
  • Поймите, как определять требования пользователей и системы к новому программному обеспечению и приложениям.
  • Узнайте, как писать и проверять код для полнофункционального веб-приложения.
  • Разработайте свое первое приложение, управляемое данными, с помощью Django и SQLite.
  • Узнайте, как написать концепцию OOPS на Python для решения сложных вычислительных задач.
  • Изучите реализацию Python в самых популярных областях, таких как искусственный интеллект, машинное обучение и глубокое обучение.
  • Получите глубокое понимание архитектуры клиентского сервера в программировании сокетов с реализацией TCP / IP.

Изучите Python на вашем родном языке

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

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

Выберите версию языка курса Python Essentials

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

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

  • Русский (ожидается публикация)
  • Турецкий (в разработке)
  • Португальский (в разработке)
  • Венгерский (в разработке)
  • Французский (в разработке)
  • Арабский (в разработке)
  • Упрощенный китайский (в разработке)
  • Немецкий (измерение процента)
  • Японский (оценка процентов)

Все доступные языковые версии доступны на странице регистрации на курс Сетевой академии Cisco.

Поддержка локализации курса на ваш родной язык

Если вам интересно, можете ли вы что-нибудь сделать, чтобы помочь нам принять решение о локализации курса Python Essentials на ваш родной язык, это легко — вот что вы можете сделать:

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

Сейчас мы отслеживаем интерес студентов к версиям курса German и Japanese Python Essentials — Part 1 и Python Essentials — Part 2 .

Изучите Python 3 и веб-дизайн с помощью 200+ упражнений — Изучите Python 3


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

Что мы имеем здесь:

  • Базовые уроки — мы начинаем с нуля, но углубляемся в то, что вам действительно нужно в производстве
  • Сложные задачи — несколько головоломок, которые нужно практиковать на любом уроке
  • Средство выполнения кода в браузере — вам не нужно ничего настраивать, чтобы начать работу
  • Поддержка через Интернет и мобильные устройства — код с любого имеющегося у вас гаджета
  • Visualizer — идеальный способ пошагово отладить выполнение программы вперед и назад, чтобы увидеть переменные

Ищете способ научить Python на ключевом этапе 3, AP Computer Science Principles или CS1? Наш курс подходит именно вам.

Мы серьезно относимся к интересным проблемам, которые вы можете решить онлайн. Посмотри на эти:
  • Ход ладьи [тема: условия] — по двум координатам на шахматной доске определить, может ли ладья перемещаться от одной к другой за один ход.
  • Наименьший делитель [тема: цикл while] — найти наименьший делитель заданного целого числа.
  • Количество вхождений [тема: словари] — посчитайте, сколько раз вы видели каждое слово при сканировании данного текста.

24к
зачисленных студента

11
уроков

100+
проблемы с кодированием

требуемый технический уровень

Джон Слоан

Дублин, Ирландия

«Я был лингвистом, намеревавшимся заняться компьютерной лингвистикой, но у меня не было опыта в компьютерной лингвистике.Snakify поднял меня от абсолютного новичка до вершины класса. Сейчас я разработал веб-сайт с онлайн-курсами английского языка и получил финансирование для дальнейших исследований ».

Евгений Серебряков

Санкт-Петербург, Россия

«Я изучал молекулярную биофизику в своем университете. Весной 2015 года я закончил этот курс, а зимой нашел первую стажировку в качестве веб-разработчика Python / Django ».

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

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

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

  • Python очень простой и гибкий. Программы на Python мельче, чем на других языках.
  • Мощный. Благодаря своему огромному сообществу Python очень популярен как серверный язык. Google (паук, поисковая система, Google Maps), Netflix и Pinterest использовать его много. Youtube, Quora, Reddit, Dropbox, Yahoo, Battlefield 2, Civilization 4, NASA, AlphaGene — все они используют Python; см. весь список здесь.
  • Высокий спрос на программистов. См. Открытые вакансии на StackOverflow

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

  • Google, Netflix и Pinterest использовать его много. Youtube, Quora, Reddit, Dropbox, Google Maps. Yahoo, Battlefield 2, Civilization 4, NASA, AlphaGene — все они используют Python; см. весь список здесь.

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

Готовы? Перейти к первому уроку

Перевод текста

с помощью Google Translate API в Python

Если вы не прятались под камнем, вы, вероятно, использовали Google Translate много раз в своей жизни. Всякий раз, когда вы пытаетесь перевести слово или предложение с одного языка на другой, именно API Google Translate дает вам желаемые результаты в фоновом режиме.Хотя вы можете перевести что угодно, просто перейдя на веб-страницу Google Translate, вы также можете интегрировать Google Translate API в свои веб-приложения или настольные программы. Самое лучшее в API — это то, что его чрезвычайно легко настроить и использовать.

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

Установка Google Translate API

Прежде чем вы сможете работать с Google Translate API в Python, вам необходимо установить его. Есть два разных метода установки API. Первый метод прост. Просто перейдите в терминал и используйте установщик pip для установки API, как и для любой другой библиотеки Python. Для этого введите в терминале следующую команду:

  $ pip install googletrans
  

Нажмите Введите , и модуль Python для Google Translate API будет установлен в вашей системе.

Если вы установили дистрибутив Python для Anaconda, вы можете установить API с помощью Anaconda Prompt. В этом конкретном методе вы замените pip в приведенной выше команде на conda , как показано в следующем фрагменте кода:

  $ conda установить googletrans
  

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

Список поддерживаемых языков

API Google Translate поддерживает множество языков.Чтобы вывести список всех поддерживаемых языков, запустите следующий скрипт:

  импорт googletrans

печать (googletrans.LANGUAGES)
  

В приведенном выше примере вы используете ключевое слово import для импорта модуля googletrans . Впоследствии вы можете перечислить все названия языков, распечатав атрибут LANGUAGES модуля googletrans .

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

  {'af': 'африкаанс', 'sq': 'албанский', 'am': 'амхарский', 'ar': 'арабский', 'hy': 'армянский', 'az': 'азербайджанский' , 'eu': 'баскский', 'be': 'белорусский', 'bn': 'бенгальский', 'bs': 'боснийский', 'bg': 'болгарский', 'ca': 'каталонский', ' ceb ':' cebuano ',' ny ':' chichewa ',' zh-cn ':' китайский (упрощенный) ',' zh-tw ':' китайский (традиционный) ',' co ':' корсиканский ',' hr ':' хорватский ',' cs ':' чешский ',' da ':' датский ',' nl ':' голландский ',' en ':' английский ',' eo ':' эсперанто ',' et ' : 'эстонский', 'tl': 'филиппинский', 'fi': 'финский', 'fr': 'французский', 'fy': 'frisian', 'gl': 'галисийский', 'ka': ' georgian ',' de ':' немецкий ',' el ':' греческий ',' gu ':' гуджарати ',' ht ':' гаитянский креольский ',' ha ':' hausa ',' haw ':' гавайский ',' iw ':' иврит ',' hi ':' хинди ',' hmn ':' хмонг ',' hu ':' венгерский ',' is ':' исландский ',' ig ':' igbo ', 'id': 'индонезийский', 'ga': 'ирландский', 'it': 'итальянский', 'ja': 'японский', 'jw': 'яванский', 'kn': 'kannada', 'kk ':' казах ',' км ':' кхмерский ',' ко ':' корейский ',' ку ':' курдыш (курманджи) ',' кы ':' кыргыз ',' ло ':' лао ',' la ':' латинский ' , 'lv': 'латышский', 'lt': 'литовский', 'lb': 'люксембургский', 'mk': 'македонский', 'mg': 'малагасийский', 'ms': 'малайский', ' ml ':' малаялам ',' mt ':' мальтийский ',' mi ':' маори ',' mr ':' marathi ',' mn ':' монгольский ',' my ':' мьянманский (бирманский) ', 'ne': 'непали', 'no': 'норвежский', 'ps': 'пушту', 'fa': 'персидский', 'pl': 'польский', 'pt': 'португальский', 'pa ':' пенджаби ',' ro ':' румынский ',' ru ':' русский ',' sm ':' samoan ',' gd ':' scots gaelic ',' sr ':' сербский ',' st ' : 'sesotho', 'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'словацкий', 'sl': 'словенский', 'so': ' somali ',' es ':' испанский ',' su ':' sundanese ',' sw ':' суахили ',' sv ':' шведский ',' tg ':' таджикский ',' ta ':' тамильский ' , 'te': 'телугу', 'th': 'тайский', 'tr': 'турецкий', 'uk': 'украинский', 'ur': 'урду', 'uz': 'узбекский', ' vi ':' вьетнамский ',' cy ':' валлийский ',' xh ':' xhosa ',' yi ':' идиш ',' yo ':' yoruba ',' zu ':' zulu ',' fil ' : 'Филиппинский', 'он': 'иврит'}
  

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

Самым основным применением Google Translate API, конечно же, является перевод слов или предложений с одного языка на другой.Для этого мы должны импортировать класс Translator из модуля googletrans .

  из переводчика импорта googletrans
  

Далее необходимо создать объект класса Translator .

  translator = Переводчик ()
  

После создания объекта класса Translator вы передадите текст на исходном языке в качестве параметра методу translate () объекта класса Translator () , как показано ниже:

  результат = переводчик.перевести ('Mitä sinä teet')
  

В приведенном выше скрипте мы передаем финский текст методу translate () .

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

Объект, возвращаемый методом translate () , имеет следующие атрибуты:

  • src : Исходный язык
  • dest : целевой язык, установленный на английский (en)
  • origin : Исходный текст, в нашем примере «Mitä sinä teet»
  • текст : Переведенный текст, это будет «что ты делаешь?» в нашем случае
  • произношение : Произношение переведенного текста

Давайте распечатаем все вышеперечисленные атрибуты и посмотрим, что мы получим:

  печать (результат.SRC)
печать (result.dest)
печать (result.origin)
печать (результат.текст)
печать (результат. произношение)
  

Выход:

  fi
en
Mitä sinä teet
Что ты делаешь
Что ты делаешь
  

Выходные данные показывают, что исходным языком является финский (fi), а языком назначения — английский (en). Переведенное предложение можно напечатать с помощью атрибута text .

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

Указание исходного и целевого языков

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

  результат = переводчик.translate ('Mikä on nimesi', src = 'fi')
  

Для добавления только целевого языка необходимо добавить атрибут dest , за которым следует код языка:

  result = translator.translate ('Mikä on nimesi', dest = 'fr')
  

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

  result = translator.translate ('Mikä on nimesi', src = 'fi', dest = 'fr')
  

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

  из переводчика импорта googletrans

translator = Переводчик ()
result = translator.translate ('Mikä on nimesi', src = 'fi', dest = 'fr')

печать (result.src)
печать (result.dest)
печать (результат.текст)
  

Приведенный выше фрагмент кода даст следующий результат.

  fi
fr
Quel est votre nom
  

Перевести список фраз

Также можно перевести список текстовых фраз с помощью Google Translate API.Основной процесс такой же, как описано выше. Вам просто нужно передать список, содержащий фразы, в качестве параметра методу translate () . Это полезно, если пакет фраз переводится отдельно, но все в одном вызове API.

Создадим список строк, содержащих фразы из французского языка.

  предложений = ['Bienvenu', 'Comment allez-vous', 'je vais bien']
  

Теперь пора вызвать метод translate () и передать список, исходный язык и целевой язык в качестве параметров.

  результат = translator.translate (предложения, src = 'fr', dest = 'sw')
  

В приведенном выше сценарии исходным языком является французский, а языком назначения — суахили.

Метод translate () возвращает список объектов, если вы передаете ему список фраз. Каждый объект в списке, возвращаемый методом translate () , соответствует каждой фразе в списке ввода, которую необходимо перевести. Лучший способ найти перевод каждой входной фразы в списке — перебрать список выходных объектов.Затем вы можете использовать текст , origin , src и другие атрибуты отдельных объектов, чтобы увидеть перевод отдельных фраз в списке ввода.

В приведенном ниже скрипте мы перебираем список объектов, возвращаемых методом translate () , а затем выводим исходный текст и переведенный текст:

  для транс в результате:
    print (f '{trans.origin} -> {trans.text}')
  

На экране будет отображен следующий результат.

  Бьенвеню -> Карибу
Комментарий Allez-vous -> Vipi wewe
je vais bien -> Нико Сава
  

Перевод текстовых документов

Вы также можете переводить текстовые документы с помощью Google Translate API. Все, что вам нужно сделать, это прочитать текстовый файл в Python с помощью метода open , прочитать текст и передать его методу translate () .

Первым делом нужно открыть файл в режиме «чтение»:

  f = open ('C: \ Users \ Khurram \ Desktop \ test.txt ',' r ')
  

Вы также можете проверить, находится ли файл в режиме «чтения», используя свойство mode :

  если f.mode == 'r':
  

Затем вы можете использовать метод f.read () для чтения содержимого файла. Содержимое файла можно сохранить в любой переменной. В нашем случае имя переменной будет содержимого.

Мы также напечатаем значение переменной , чтобы проверить, правильно ли Python читает текстовый файл:

  содержимое = ф.читать()
печать (содержание)
  

Вот вывод содержимого файла:

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

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

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

  из переводчика импорта googletrans

file_translate = Переводчик ()
  

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

  результат = translator.translate (contents, dest = 'fr')
печать (результат.текст)
  

Результат должен выглядеть следующим образом:

  Nous allons traduire ce fichier texte en Python.Par la suite, nous le traduirons également en français.
  

Чтобы записать переведенный текст в тот же файл или в другой текстовый файл, вы просто откроете файл в режиме записи («w»). Затем вам нужно вызвать метод write () и передать ему переведенный текст, как показано ниже:

  с open ('C: \\ Users \\ Khurram \\ Desktop \\ test_2.txt', 'w') как f:
    f.write (результат.текст)
  

В приведенном выше примере мы использовали диспетчер контекста с для автоматического открытия и закрытия потока записи.Во-вторых, мы открыли файл в режиме записи. Наконец, мы использовали метод write () для записи переведенной строки в новый файл.

Заключение

Google Translate — это инструмент с API, который помогает выполнять множество различных функций, связанных с переводом. Приведенные выше примеры коснулись лишь поверхности. Вам предлагается попрактиковаться в API, а также изучить и понять, как его использовать в реальных приложениях.

OpenCV: Введение в учебные пособия по OpenCV-Python

OpenCV

OpenCV был запущен в Intel в 1999 году Gary Bradsky , а первая версия вышла в 2000 году. Вадим Писаревский присоединился к Гэри Брадски, чтобы руководить командой Intel по разработке программного обеспечения OpenCV в России. В 2005 году OpenCV использовался на Stanley, автомобиле, который выиграл DARPA Grand Challenge 2005 года. Позже его активное развитие продолжилось при поддержке Willow Garage под руководством Гэри Брадского и Вадима Писаревского. OpenCV теперь поддерживает множество алгоритмов, связанных с компьютерным зрением и машинным обучением, и расширяется день ото дня.

OpenCV поддерживает широкий спектр языков программирования, таких как C ++, Python, Java и т. Д., и доступен на разных платформах, включая Windows, Linux, OS X, Android и iOS. Также активно развиваются интерфейсы для высокоскоростных операций с графическим процессором на основе CUDA и OpenCL.

OpenCV-Python — это Python API для OpenCV, сочетающий в себе лучшие качества OpenCV C ++ API и языка Python.

OpenCV-Python

OpenCV-Python — это библиотека привязок Python, предназначенная для решения задач компьютерного зрения.

Python — это язык программирования общего назначения, созданный Гвидо ван Россумом , который очень быстро стал очень популярным, в основном из-за его простоты и читабельности кода.Это позволяет программисту выражать идеи в меньшем количестве строк кода без снижения читабельности.

По сравнению с такими языками, как C / C ++, Python медленнее. Тем не менее, Python можно легко расширить с помощью C / C ++, что позволяет нам писать ресурсоемкий код на C / C ++ и создавать оболочки Python, которые можно использовать как модули Python. Это дает нам два преимущества: во-первых, код работает так же быстро, как и исходный код C / C ++ (поскольку это фактический код C ++, работающий в фоновом режиме), и, во-вторых, его легче кодировать на Python, чем на C / C ++.OpenCV-Python — это оболочка Python для исходной реализации OpenCV C ++.

OpenCV-Python использует Numpy , который является высоко оптимизированной библиотекой для числовых операций с синтаксисом в стиле MATLAB. Все структуры массивов OpenCV преобразуются в массивы Numpy и обратно. Это также упрощает интеграцию с другими библиотеками, использующими Numpy, такими как SciPy и Matplotlib.

OpenCV-Python Учебники

OpenCV представляет новый набор руководств, которые проведут вас через различные функции, доступные в OpenCV-Python. Это руководство в основном ориентировано на OpenCV 3.x версии (хотя большинство руководств также будут работать с OpenCV 2.x).

Рекомендуется предварительное знание Python и Numpy, поскольку они не будут рассмотрены в этом руководстве. Знание Numpy необходимо для написания оптимизированного кода с использованием OpenCV-Python.

Изначально это руководство было начато Абидом Рахманом К. в рамках программы Google Summer of Code 2013 под руководством Александра Мордвинцева .

OpenCV нужен вам !!!

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

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

Помните, мы вместе можем сделать этот проект большим успехом !!!

Авторы

Ниже приведен список участников, отправивших учебные пособия по OpenCV-Python.

  1. Александр Мордвинцев (наставник GSoC-2013)
  2. Абид Рахман К. (стажер GSoC-2013)

Дополнительные ресурсы

  1. Краткое руководство по Python — Байт Python
  2. Краткое руководство по NumPy
  3. Ссылка NumPy
  4. Документация OpenCV
  5. Форум OpenCV

Современное программирование — Санкт-Петербургский университет

Уровень образования : Бакалавриат

Вид обучения : Очное

Продолжительность: 4 года

Язык обучения: Английский, Русский

Курсы

Базовые курсы

  • С ++
  • Ява
  • Python
  • Альтернативные языки для JVM
  • Функциональное программирование
  • Теория алгоритмов
  • Операционные системы
  • Теория формального языка
  • Базы данных
  • Параллельное программирование
  • Разработка программного обеспечения
  • Компиляторы
  • Алгоритмы и структуры данных
  • Дискретная математика
  • Линейная алгебра
  • Математический анализ
  • Основы математической логики и теоретической информатики
  • Математическая статистика

Элективные курсы

  • Численные методы
  • Теория информации
  • Алгоритмы решения NP-сложных задач
  • Алгоритмы биоинформатики
  • Введение в машинное обучение
  • Тестирование программного обеспечения
  • Глубокое обучение
  • Веб-поиск и рейтинг
  • Компьютерная графика
  • Вычислительная геометрия
  • Распознавание и формирование речи
  • Мобильная разработка

Наши преимущества

  • Обучение студентов фундаментальным математическим дисциплинам ведется выдающимися преподавателями и учеными университета, в частности, научными сотрудниками Института физико-математических наук им.Лаборатория им. Л. Чебышева, возглавляемая лауреатом Филдсовской премии Станиславом Смирновым
  • Традиционное классическое университетское образование сочетается с современными образовательными технологиями. В конце второго года обучения студентам предоставляется возможность выбрать наборы академических дисциплин: машинное обучение и анализ данных, облачные технологии и виртуализация, промышленное программирование, языки программирования и т. Д.
  • Особое внимание уделяется специализированным технологическим дисциплинам, разработанным в сотрудничестве с ведущими IT-компаниями (JetBrains, Яндекс и др.), сотрудники которых участвуют в обучении. Тесное взаимодействие университета и потенциальных работодателей обеспечивает применимость полученных знаний для студентов
  • В процессе обучения студенты смогут выбирать программные и исследовательские проекты, над которыми они смогут работать под руководством своих преподавателей или представителей компаний-партнеров.
  • Обучение соревновательному программированию будет организовано под руководством ведущих инструкторов
  • Персональные стипендии от десяти до пятнадцати тысяч рублей в месяц от компании JetBrains

Практика и дальнейшая карьера

Практические занятия — одна из важнейших составляющих программы.Стажировки будут организованы в таких ведущих IT-компаниях, как JetBrains и Яндекс.

Выпускников готовят к работе:

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

Выпускники трудоустроены в исследовательские центры, учебные заведения, предприятия и IT-компании.

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

Translate List и фрейм данных Pandas с использованием библиотеки googletrans в python | Прабхат Патхак | Analytics Vidhya

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

Фото 🇸🇮 Янко Ферлич на Unsplash

В этом уроке я бы перевел данные с испанского на английский, с английского на хинди и в последнем сегменте с русского на английский, хинди и французский. Я продемонстрирую перевод на фрейме данных Pandas, списке и строках.

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

googletrans — это бесплатная неограниченная библиотека Python, в которой реализован API Google Translate.

Функции

  • Быстрый и надежный — он использует те же серверы, что и translate.google.com
  • Автоматическое определение языка
  • Массовые переводы
  • Настраиваемый URL-адрес службы
  • Пул соединений (преимущество использования запросов.Session)
Фото Чарльза Рэя на Unsplash

Установка

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

 pip install googletrans 

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

 из googletrans import Translator 
import pandas as pd

Case 1

Я создал фрейм данных pandas и буду переводить его на английский язык.

 translator = Translator () 
df = pd.DataFrame ({'Испанский': ['piso', 'cama']})
df

output:

перевод этого фрейма данных на английский язык:

 df [' Английский '] = df [' Испанский '].apply (translator.translate, src = 'es', dest = 'en'). apply (getattr, args = ('text',)) 
df

Вот окончательный результат:

final output

Case 2

Перевод списка (df) в приведенном ниже коде с английского на хинди

 из googletrans import Translatortranslator = Translator () # initalize the Translator objectdf = ['How are you are today', 'Good morning, How are you', 'I hope у вас все отлично '] translations = translator.translate (df, dest =' hi ') 
для перевода в переводах: # печатать каждый перевод
print (translation.text)
Выход

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

, пример 1:

В этом примере мы не знаем исходный язык этого текста ‘’.

Приведенный ниже код определит исходный язык и также расскажет нам о переведенном языке (dest).

 из googletrans import Translator 
translator = Translator ()
print (translator.translate ('안녕하세요.'))
output

В приведенном выше выводе мы теперь знаем », что этот текст (ko: корейский) и переведен на (en: английский).

, пример 2:

Мы будем использовать функцию detect ( text ): эта функция помогает нам определять язык входящего текста.

 из googletrans import Translator 
translator = Translator ()
translator.detect ('이 문장 은 한글 로 쓰여졌 습니다.')
print (translator.detect ('이 문장 은 한글 쓰여졌 습니다.'))
выведите

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

 langs = translator.detect (['한국어', '日本語', 'English', 'le français']) 
для lang in langs:
print (lang.lang, lang.confidence)
output Фото Уильяма Ивена на Unsplash

Случай 3

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

i.С русского на английский

ii. С русского на хинди

iii. С русского на французский в том же фрейме данных.

 df1 = pd.read_excel ('russiandataset.xlsx', sheet_name = 'Dataset1') 
df1
фрейм данных
 df1 ['English'] = df1 ['Russian'].
        
	

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

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

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa