O aprendizado de máquina é uma biblioteca Python leve que contém funções e trechos de código que eu uso em minha pesquisa diária com aprendizado de máquina, aprendizado profundo, PNL.
Criei esse repositório porque estava cansado de sempre procurar o mesmo código de projetos mais antigos e queria ganhar alguma experiência na construção de uma biblioteca Python. Ao disponibilizar isso a todos, ele me dá fácil acesso ao código que eu uso com frequência e pode ajudar outras pessoas em seu aprendizado de máquina a trabalhar. Se você encontrar bugs ou algo não faz sentido, sinta -se à vontade para abrir um problema.
Isso não é tudo! Esta biblioteca também contém trechos de código Python e notebooks que aceleram meu fluxo de trabalho de aprendizado de máquina.
Observação:
Feb 5, 2022 Obrigado a todos novamente por seu apoio e bondade! Este pacote está disponível no Pypi agora! pip install ml-thingsJuly 16, 2021 Obrigado a todos pelo seu apoio e bondade! Enquanto prometi, vou mover esse repo para os módulos de instalação do PIP.Ml_things :
Flugets : Lista com curadoria de trechos de Python que eu frequentemente uso.
Comentários : Exemplo de como gosto de comentar meu código. Ainda é um trabalho em andamento.
Tutoriais de notebooks : projetos de aprendizado de máquina que converti em tutoriais e publicados online.
Nota final : sendo grato.
Este repo é testado com o Python 3.6+.
É sempre uma boa prática instalar ml_things em um ambiente virtual. Se você orienta o uso dos ambientes virtuais do Python, poderá conferir o guia do usuário aqui.
Você pode instalar ml_things com pip no github:
pip install git+https://github.com/gmihaila/ml_thingsOu de Pypi:
pip install ml-thingsToda a função implementada no módulo ML_THINGS .
Função relacionada à manipulação da matriz que pode ser útil ao trabalhar com o aprendizado de máquina.
Matriz de comprimento variável do PAD para uma matriz fixa. Pode lidar com matrizes únicas [1,2,3] ou matrizes aninhadas [[1,2], [3]].
Por padrão, o Padd Zeros no comprimento máximo da linha detectado:
> >> 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. ]])Também pode ser necessário para um tamanho personalizado e com os valores de 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. ]])Divida uma lista em lotes/pedaços. O tamanho do último lote é restante dos valores da lista. Nota: Isso também é chamado de chunking. Eu chamo de lotes, pois eu o uso mais em ML.
O último lote será os valores de revelação:
> >> 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 ]]Função relacionada à plotagem que pode ser útil ao trabalhar com o aprendizado de máquina.
Crie gráfico a partir de uma única matriz de valores.
Todos os argumentos são otimizados para gráficos rápidos. Altere os argumentos magnify para variar o tamanho da parcela:
> >> 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' )
Crie gráfico a partir de uma única matriz de valores.
Todos os argumentos são otimizados para gráficos rápidos. Altere os argumentos magnify para variar o tamanho da parcela:
> >> 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' )
Esta função imprime e plota a matriz de confusão. A normalização pode ser aplicada definindo normalize=True .
Todos os argumentos são otimizados para gráficos rápidos. Altere os argumentos magnify para variar o tamanho da parcela:
> >> 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 ]])
Função relacionada ao texto que pode ser útil ao trabalhar com o aprendizado de máquina.
Texto limpo usando várias técnicas:
> >> 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'Função relacionada à Web que pode ser útil ao trabalhar com o aprendizado de máquina.
Baixe o arquivo de URL. Ele retornará o caminho do arquivo baixado:
> >> from ml_things import download_from
> >> download_from ( url = 'https://raw.githubusercontent.com/gmihaila/ml_things/master/setup.py' , path = '.' )
'./setup.py'Esta é uma variedade muito grande de trechos de python sem um certo tema. Coloquei -os nos mais usados, mantendo uma ordem lógica. Eu gosto de tê -los o mais simples e eficiente possível.
| Nome | Descrição |
|---|---|
| Leia o arquivo | Um revestimento para ler qualquer arquivo. |
| Escreva arquivo | Um revestimento para escrever uma string em um arquivo. |
| Depurar | Comece a depurar após esta linha. |
| Pip install github | Instale a biblioteca diretamente do GitHub usando pip . |
| Argumento de analisar | Analise os argumentos fornecidos ao executar um arquivo .py . |
| Doctest | Como executar uma unitSC simples usando o Function Documentaiton. Útil quando precisar fazer o UNITTest Inside Notebook. |
| Corrija o texto | Como os dados de texto são sempre confusos, eu sempre os uso. É ótimo para consertar qualquer unicode ruim. |
| Data atual | Como obter a data atual em Python. Eu uso isso quando precisar nomear arquivos de log. |
| Horário atual | Obtenha o horário atual em Python. |
| Remova a pontuação | A maneira mais rápida de remover a pontuação no Python3. |
| Pytorch-Dataset | Exemplo de código sobre como criar um conjunto de dados Pytorch. |
| Pytorch-Device | Como configurar o dispositivo em Pytorch para detectar se a GPU está disponível. |
Estes são alguns trechos de como eu gosto de comentar meu código. Vi muitas maneiras diferentes de como as pessoas comentarem seu código. Uma coisa é certa: qualquer comentário é melhor do que nenhum comentário .
Eu tento seguir o máximo que puder o PEP 8 - o guia de estilo para o código Python.
Quando eu comento uma função ou classe:
# 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 }É aqui que eu mantenho cadernos de alguns projetos anteriores que os transformei em pequenos tutoriais. Muitas vezes eu as uso como base para iniciar um novo projeto.
Todos os notebooks estão no Google Colab . Nunca ouviu falar do Google Colab? ? Você deve conferir a visão geral do colaboratório, Introdução ao Colab e Python e o que eu acho que é um ótimo artigo médio sobre ele para configurar o Google Colab como um profissional.
Se você verificar o /ml_things/notebooks/ muitos deles não estão listados aqui porque ainda não estão em uma forma 'polida'. Estes são os cadernos que são bons o suficiente para compartilhar com todos:
| Nome | Descrição | Links |
|---|---|---|
| ? Melhores lotes com pytorchtext billetiterator | Como usar o PytorchText BucketIterator para classificar os dados de texto para melhor lotes. | |
| ? Modelos de Transformers de pré -train em pytorch usando transformadores de rosto abraçados | Modelos pré -TRARAIN 67 Transformers no seu conjunto de dados personalizado. | |
| ? Transformadores finos em pytorch usando transformadores de rosto abraçados | Tutorial completo sobre como ajustar os modelos de transformadores 73 para classificação de texto-nenhuma alteração de código é necessária! | |
| Bert Trabalho interno em Pytorch usando transformadores de rosto abraçados | Tutorial completo sobre como uma entrada flui através do BERT. | |
| ? GPT2 para classificação de texto usando o rosto abraçando? Transformadores | Tutorial completo sobre como usar o GPT2 para classificação de texto. |
Obrigado por verificar meu repositório. Eu sou um perfeccionista, então farei muitas mudanças quando se trata de pequenos detalhes.
Se você vir algo errado, por favor me avise abrindo um problema no meu repositório ML_things Github!
Muitos tutoriais por aí são principalmente uma coisa única e não estão sendo mantidos. Eu pretendo manter meus tutoriais atualizados o máximo que puder.
? Github: GMihaila
Site: gmihaila.github.io
? LinkedIn: Mihailageorge
? E -mail: [email protected]