Machine Learning Things es una biblioteca de pitón liviana que contiene funciones y fragmentos de código que uso en mi investigación diaria con aprendizaje automático, aprendizaje profundo, PNL.
Creé este repositorio porque estaba cansado de siempre buscar el mismo código de proyectos más antiguos y quería ganar algo de experiencia en la construcción de una biblioteca de Python. Al poner esto a disposición de todos, me da fácil acceso al código que uso con frecuencia y puede ayudar a otros en su trabajo de aprendizaje automático. Si encuentra algún error o algo no tiene sentido, no dude en abrir un problema.
¡Eso no es todo! Esta biblioteca también contiene fragmentos de código Python y cuadernos que aceleran mi flujo de trabajo de aprendizaje automático.
Nota:
Feb 5, 2022 Gracias a todos nuevamente por su apoyo y amabilidad! ¡Este paquete está disponible en Pypi ahora! pip install ml-thingsJuly 16, 2021 ¡Gracias a todos por su apoyo y amabilidad! Como prometí, moveré este repositorio a módulos de instalación de PIP.Ml_things :
Fragmentos : lista curada de fragmentos de pitón que uso con frecuencia.
Comentarios : Muestra sobre cómo me gusta comentar mi código. Todavía es un trabajo en progreso.
Tutoriales de cuadernos : proyectos de aprendizaje automático que convirtí a tutoriales y publiqué en línea.
Nota final : estar agradecido.
Este repositorio se prueba con Python 3.6+.
Siempre es una buena práctica instalar ml_things en un entorno virtual. Si le orienta sobre el uso de los entornos virtuales de Python, puede consultar la guía del usuario aquí.
Puede instalar ml_things con pip desde github:
pip install git+https://github.com/gmihaila/ml_thingsO de Pypi:
pip install ml-thingsToda la función implementada en el módulo ML_THINGS .
Función relacionada con la manipulación de la matriz que puede ser útil cuando se trabaja con el aprendizaje automático.
Matriz de longitud variable de almohadilla a una matriz numpy fija. Puede manejar matrices individuales [1,2,3] o matrices anidadas [[1,2], [3]].
De manera predeterminada, remamos los ceros a la longitud máxima de la fila detectada:
> >> 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. ]])También puede rellenar a un tamaño personalizado y con 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 una lista en lotes/trozos. El último tamaño de lote restante de los valores de la lista. Nota: Esto también se llama fragmentación. Lo llamo lotes ya que lo uso más en ML.
El último lote serán los valores de la transmisión:
> >> 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 ]]Trazar la función relacionada que puede ser útil cuando se trabaja con el aprendizaje automático.
Crear gráfico a partir de una sola matriz de valores.
Todos los argumentos están optimizados para parcelas rápidas. Cambie los argumentos magnify para variar el tamaño de la trama:
> >> 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' )
Crear gráfico a partir de una sola matriz de valores.
Todos los argumentos están optimizados para parcelas rápidas. Cambie los argumentos magnify para variar el tamaño de la trama:
> >> 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 función imprime y traza la matriz de confusión. La normalización se puede aplicar configurando normalize=True .
Todos los argumentos están optimizados para parcelas rápidas. Cambie los argumentos magnify para variar el tamaño de la trama:
> >> 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 ]])
Función relacionada con el texto que puede ser útil cuando se trabaja con el aprendizaje automático.
Texto limpio utilizando varias 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'Función relacionada con la web que puede ser útil cuando se trabaja con el aprendizaje automático.
Descargar archivo de URL. Devolverá la ruta del archivo descargado:
> >> from ml_things import download_from
> >> download_from ( url = 'https://raw.githubusercontent.com/gmihaila/ml_things/master/setup.py' , path = '.' )
'./setup.py'Esta es una gran variedad de fragmentos de pitón sin un determinado tema. Los puse en los más utilizados mientras mantengo un orden lógico. Me gusta tenerlos lo más simple y eficiente posible.
| Nombre | Descripción |
|---|---|
| Leer el archivo | Un revestimiento para leer cualquier archivo. |
| Escribir archivo | Un revestimiento para escribir una cadena en un archivo. |
| Depurar | Comience a depurar después de esta línea. |
| PIP Instale GitHub | Instale la biblioteca directamente desde GitHub usando pip . |
| Argumento de análisis | Anguar los argumentos dados al ejecutar un archivo .py . |
| Mínimo | Cómo ejecutar un unittesc simple utilizando la función documentaiCon. Útil cuando necesita hacer un poco en el cuaderno interno. |
| Texto de arreglo | Dado que los datos de texto siempre son complicados, siempre lo uso. Es genial para arreglar cualquier mal unicode. |
| Fecha actual | Cómo obtener la fecha actual en Python. Uso esto cuando necesito nombrar archivos de registro. |
| Hora actual | Obtenga tiempo actual en Python. |
| Eliminar la puntuación | La forma más rápida de eliminar la puntuación en Python3. |
| Pytorch-dataset | Ejemplo de código sobre cómo crear un conjunto de datos Pytorch. |
| Dispositivo de pytorch | Cómo configurar el dispositivo en Pytorch para detectar si hay GPU disponible. |
Estos son algunos fragmentos de cómo me gusta comentar mi código. Vi muchas formas diferentes de cómo las personas comentan su código. Una cosa es segura: cualquier comentario es mejor que ningún comentario .
Intento seguir tanto como pueda el Pep 8: la guía de estilo para el código Python.
Cuando comento una función o clase:
# 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 }Aquí es donde guardo cuadernos de algunos proyectos anteriores que los convirtí en pequeños tutoriales. Muchas veces los uso como base para comenzar un nuevo proyecto.
Todos los cuadernos están en Google Colab . ¿Nunca has oído hablar de Google Colab? ? Debe ver la descripción general de Colaboratory, Introducción a Colab y Python y lo que creo que es un gran artículo mediano al respecto para configurar Google Colab como un Pro.
Si verifica /ml_things/notebooks/ muchos de ellos no están listados aquí porque todavía no están en un formulario 'pulido'. Estos son los cuadernos que son lo suficientemente buenos como para compartir con todos:
| Nombre | Descripción | Campo de golf |
|---|---|---|
| ? Mejores lotes con PytorchText Bucketiterator | Cómo usar el bucketiterator PytorchText para ordenar los datos de texto para un mejor lote. | |
| ? Modelos de transformadores de pretrano en Pytorch usando transformadores de cara abrazados | Pretrain 67 modelos de transformadores en su conjunto de datos personalizado. | |
| ? Transformadores de tune fino en Pytorch usando transformadores de cara abrazados | Tutorial completo sobre cómo ajustar los modelos de transformadores 73 para la clasificación de texto: ¡no se necesitan cambios en el código! | |
| Bert Inner Works en Pytorch usando Facing Face Transformers | Complete un tutorial sobre cómo fluye una entrada a través de Bert. | |
| ? GPT2 para la clasificación de texto usando la cara abrazada? Transformadores | Tutorial completo sobre cómo usar GPT2 para la clasificación de texto. |
Gracias por visitar mi repositorio. Soy perfeccionista, así que haré muchos cambios cuando se trata de pequeños detalles.
Si ve algo mal, avíseme abriendo un problema en mi repositorio de Github ML_THINGS !
Muchos tutoriales son en su mayoría una cosa única y no se están manteniendo. Planeo mantener mis tutoriales actualizados tanto como puedo.
? Github: Gmihaila
Sitio web: gmihaila.github.io
? LinkedIn: Mihailageorge
? Correo electrónico: [email protected]