Machine Learning Things - это легкая библиотека Python, которая содержит функции и фрагменты кода, которые я использую в своих повседневных исследованиях с машинным обучением, глубоким обучением, NLP.
Я создал это репо, потому что я устал всегда искать тот же код из более старых проектов, и я хотел получить некоторый опыт в создании библиотеки Python. Делая это доступным для всех, он дает мне легкий доступ к коду, который я часто использую, и он может помочь другим в их работе машинного обучения. Если вы найдете какие -либо ошибки или что -то в этом роде не имеет смысла, пожалуйста, не стесняйтесь открывать проблему.
Это не все! Эта библиотека также содержит фрагменты кода Python и записные книжки, которые ускоряют мой рабочий процесс машинного обучения.
Примечание:
Feb 5, 2022 еще раз спасибо за вашу поддержку и доброту! Этот пакет доступен на PYPI сейчас! pip install ml-thingsJuly 16, 2021 Спасибо всем за поддержку и доброту! Как я сообщил, я перемесчу это репо в модули PIP.ML_THINGS :
Скуды : куратор списка фрагментов Python, которые я часто использую.
Комментарии : образец того, как я люблю комментировать свой код. Это все еще работа в процессе.
Учебные пособия по ноутбукам : проекты машинного обучения, которые я преобразовал в учебные пособия и разместил в Интернете.
Последнее примечание : быть благодарным.
Этот репо протестирован с помощью Python 3.6+.
Всегда хорошая практика для установки ml_things в виртуальной среде. Если вы рекомендуете использовать виртуальные среды Python, вы можете проверить руководство пользователя здесь.
Вы можете установить ml_things с PIP из GitHub:
pip install git+https://github.com/gmihaila/ml_thingsИли от PYPI:
pip install ml-thingsВся функция реализована в модуле ML_THINGS .
Функция, связанная с манипуляцией, может быть полезна при работе с машинным обучением.
PAD переменной длины массив до фиксированного массива Numpy. Он может обрабатывать отдельные массивы [1,2,3] или вложенные массивы [[1,2], [3]].
По умолчанию он будет падать нули до максимальной длины обнаруженной строки:
> >> from ml_things import pad_array
> >> pad_array ( variable_length_array = [[ 1 , 2 ],[ 3 ],[ 4 , 5 , 6 ]])
array ([[ 1. , 2. , 0. ],
[ 3. , 0. , 0. ],
[ 4. , 5. , 6. ]])Он также может подготовить к пользовательскому размеру и со значениями Cusotm:
> >> pad_array ( variable_length_array = [[ 1 , 2 ],[ 3 ],[ 4 , 5 , 6 ]], fixed_length = 5 , pad_value = 99 )
array ([[ 1. , 2. , 99. , 99. , 99. ],
[ 3. , 99. , 99. , 99. , 99. ],
[ 4. , 5. , 6. , 99. , 99. ]])Разделите список на партии/куски. Последний размер партии остается из значений списка. Примечание: это также называется Chunking. Я называю это партиями, так как я использую его больше в ML.
Последняя партия будет значениями Reaminging:
> >> from ml_things import batch_array
> >> batch_array ( list_values = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 9 , 8 , 6 , 5 , 4 , 6 ], batch_size = 4 )
[[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ], [ 8 , 9 , 8 , 6 ], [ 5 , 4 , 6 ]]Функция, связанная с сюжетом, которая может быть полезна при работе с машинным обучением.
Создайте сюжет из одного массива значений.
Все аргументы оптимизированы для быстрых сюжетов. Измените аргументы magnify , чтобы изменить размер сюжета:
> >> from ml_things import plot_array
> >> plot_array ([ 1 , 3 , 5 , 3 , 7 , 5 , 8 , 10 ], path = 'plot_array.png' , magnify = 0.1 , use_title = 'A Random Plot' , start_step = 0.3 , step_size = 0.1 , points_values = True , use_ylabel = 'Thid' , use_xlabel = 'This' )
Создайте сюжет из одного массива значений.
Все аргументы оптимизированы для быстрых сюжетов. Измените аргументы magnify , чтобы изменить размер сюжета:
> >> from ml_things import plot_dict
> >> plot_dict ({ 'train_acc' :[ 1 , 3 , 5 , 3 , 7 , 5 , 8 , 10 ],
'valid_acc' :[ 4 , 8 , 9 ]}, use_linestyles = [ '-' , '--' ], magnify = 0.1 ,
start_step = 0.3 , step_size = 0.1 , path = 'plot_dict.png' , points_values = [ True , False ], use_title = 'Title' )
Эта функция печатает и распознает матрицу путаницы. Нормализация может быть применена путем настройки normalize=True .
Все аргументы оптимизированы для быстрых сюжетов. Измените аргументы magnify , чтобы изменить размер сюжета:
> >> from ml_things import plot_confusion_matrix
> >> plot_confusion_matrix ( y_true = [ 1 , 0 , 1 , 1 , 0 , 1 ], y_pred = [ 0 , 1 , 1 , 1 , 0 , 1 ], magnify = 0.1 , use_title = 'My Confusion Matrix' , path = 'plot_confusion_matrix.png' );
Confusion matrix , without normalization
array ([[ 1 , 1 ],
[ 1 , 3 ]])
Функция, связанная с текстом, которая может быть полезна при работе с машинным обучением.
Чистый текст с использованием различных методов:
> >> from ml_things import clean_text
> >> clean_text ( "ThIs is $$$%. t t n \ so dirtyyy$$ text :'(. omg!!!" , full_clean = True )
'this is so dirtyyy text omg'Интернет -функция, которая может быть полезна при работе с машинным обучением.
Загрузите файл с URL. Он вернет путь загруженного файла:
> >> from ml_things import download_from
> >> download_from ( url = 'https://raw.githubusercontent.com/gmihaila/ml_things/master/setup.py' , path = '.' )
'./setup.py'Это очень большое разнообразие фрагментов Python без определенной темы. Я помещаю их в наиболее часто используемые при этом логический заказ. Мне нравится, когда они их максимально просты и максимально эффективны.
| Имя | Описание |
|---|---|
| Читать файл | Один лайнер для прочтения любого файла. |
| Записать файл | Один лайнер, чтобы написать строку в файл. |
| Отлаживать | Начните отладку после этой строки. |
| PIP установить GitHub | Установите библиотеку прямо из GitHub с помощью pip . |
| Расположение аргумента | Аргументы Parse, приведенные при запуске файла .py . |
| Doctest | Как запустить простой UNITTESC с помощью функционального документаитона. Полезно, когда необходимо выполнить его в ноутбуке. |
| Исправить текст | Поскольку текстовые данные всегда грязны, я всегда использую их. Это здорово исправить любой плохой Unicode. |
| Текущая дата | Как получить текущую дату в Python. Я использую это, когда необходимо назвать файлы журнала. |
| Текущее время | Получите текущее время в Python. |
| Удалить пунктуацию | Самый быстрый способ удалить пунктуацию в Python3. |
| Pytorch-Dataset | Пример кода о том, как создать набор данных Pytorch. |
| Pytorch-Device | Как настроить устройство в Pytorch, чтобы определить, доступен ли графический процессор. |
Это несколько фрагментов того, как я люблю комментировать свой код. Я видел много разных способов того, как люди комментируют свой код. Одно можно сказать наверняка: любой комментарий лучше, чем нет комментариев .
Я стараюсь следовать столько, сколько смогу PEP 8 - руководство по стилю для кода Python.
Когда я комментирую функцию или класс:
# required import for variables type declaration
from typing import List , Optional , Tuple , Dict
def my_function ( function_argument : str , another_argument : Optional [ List [ int ]] = None ,
another_argument_ : bool = True ) -> Dict [ str , int ]
r"""Function/Class main comment.
More details with enough spacing to make it easy to follow.
Arguments:
function_argument (:obj:`str`):
A function argument description.
another_argument (:obj:`List[int]`, `optional`):
This argument is optional and it will have a None value attributed inside the function.
another_argument_ (:obj:`bool`, `optional`, defaults to :obj:`True`):
This argument is optional and it has a default value.
The variable name has `_` to avoid conflict with similar name.
Returns:
:obj:`Dict[str: int]`: The function returns a dicitonary with string keys and int values.
A class will not have a return of course.
"""
# make sure we keep out promise and return the variable type we described.
return { 'argument' : function_argument }Здесь я храню записные книжки с некоторыми предыдущими проектами, которые я превратил их в небольшие учебники. Много раз я использую их в качестве основы для запуска нового проекта.
Все ноутбуки находятся в Google Colab . Никогда не слышал о Google Colab? ? Вы должны ознакомиться с обзором колабораторного, введения в Colab и Python и то, что, я думаю, является отличной статьей об этом для настройки Google Colab, как профессионал.
Если вы проверите /ml_things/notebooks/ Многие из них не указаны здесь, потому что они еще не находятся в «полированной» форме. Это ноутбуки, которые достаточно хороши, чтобы поделиться со всеми:
| Имя | Описание | Ссылки |
|---|---|---|
| ? Лучшие партии с pytorchtext bucketiterator | Как использовать Pytorchtext Bucketiterator для сортировки текстовых данных для лучшего партии. | |
| ? Модели трансформаторов предварительных преобразований в Pytorch с использованием трансформаторов обнимающегося лица | Предварительные модели трансформаторов. | |
| ? Трансформеры с тонкой настройкой в Pytorch с использованием трансформаторов обнимающегося лица | Полное руководство о том, как настраивать модели трансформаторов 73 для классификации текста-никаких изменений кода не требуется! | |
| Берт Внутренняя работа в Pytorch с использованием трансформаторов обнимающегося лица | Полный учебник о том, как вход протекает через Берт. | |
| ? GPT2 для классификации текста с использованием обнимающегося лица? Трансформеры | Полный учебник о том, как использовать GPT2 для классификации текста. |
Спасибо за проверку моего репо. Я перфекционист, поэтому я сделаю много изменений, когда дело доходит до мелких деталей.
Если вы видите что -то не так, пожалуйста, дайте мне знать, открыв проблему в моем репозитории ML_THINGS GitHub!
Многие учебные пособия в основном являются единовременными вещами и не поддерживаются. Я планирую держать свои учебники в курсе столько, сколько смогу.
? GitHub: Gmihaila
Веб -сайт: gmihaila.github.io
? LinkedIn: Mihailageorge
? Электронная почта: [email protected]