机器学习的东西是一个轻巧的Python库,其中包含我在日常研究中使用机器学习,深度学习,NLP的功能和代码片段。
我创建了此存储库,因为我已经厌倦了总是从较旧的项目中查找相同的代码,并且想获得一些构建Python库的经验。通过使每个人都可以使用它,它使我可以轻松地访问我经常使用的代码,并且可以帮助其他人的机器学习工作。如果您发现任何错误或某些内容没有意义,请随时打开问题。
那不是全部!该库还包含Python代码片段和笔记本,以加快我的机器学习工作流程。
笔记:
Feb 5, 2022再次感谢您的支持和友善!现在可以在PYPI上使用此软件包! pip install ml-thingsJuly 16, 2021谢谢大家的支持和友善!当我发放时,我将将此存储库移至PIP安装模块。ml_things :
摘要:我经常使用的Python片段列表。
评论:示例我喜欢评论我的代码。这仍然是一项正在进行的工作。
笔记本教程:我转换为教程并在线发布的机器学习项目。
最后注意:感激不尽。
该仓库用Python 3.6+测试。
在虚拟环境中安装ml_things总是一个好习惯。如果您使用Python的虚拟环境进行指导,则可以在此处查看“用户指南”。
您可以使用GitHub的PIP安装ml_things :
pip install git+https://github.com/gmihaila/ml_things或来自PYPI:
pip install ml-thingsML_THINGS模块中实现的所有功能。
阵列操作相关的功能,在使用机器学习时可能很有用。
PAD变量长度阵列到固定的Numpy阵列。它可以处理单个数组[1,2,3]或嵌套数组[[1,2],[3]]。
默认情况下,它将padd zeros到检测到的行的最大长度:
> >> 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. ]])将列表分成批处理/块。最后一批大小是列表值的剩余。注意:这也称为块。我称其为批次,因为我在ML中使用了更多。
最后一批将是转向值:
> >> 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'Web相关的功能,在使用机器学习时可能很有用。
从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 | 使用pip直接从GitHub安装库。 |
| 解析论点 | 运行.py文件时给出的解析参数。 |
| 医生 | 如何使用函数documentaiton运行简单的UnitTESC。在需要时在笔记本内进行UNITSEST时有用。 |
| 修复文字 | 由于文本数据总是很混乱,因此我总是使用它。很好地修复了任何不良的Unicode。 |
| 当前日期 | 如何在Python中获得当前日期。我在需要命名日志文件时使用此。 |
| 当前时间 | 在Python获得当前时间。 |
| 删除标点符号 | 删除Python3中标点符号的最快方法。 |
| pytorch-dataset | 有关如何创建Pytorch数据集的代码示例。 |
| pytorch设备 | 如何在Pytorch中设置设备以检测是否可用GPU。 |
这些是我喜欢评论我的代码的一些片段。我看到了人们如何评论他们的代码的许多不同方式。可以肯定的是:任何评论总比没有评论要好。
我尝试尽可能多地遵循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? ?您必须查看Colaboratory,Colab和Python简介的概述,以及我认为这是一篇很棒的媒介文章,才能像Pro一样配置Google Colab。
如果您检查/ml_things/notebooks/其中许多尚未在此处列出,因为它们尚未以“抛光”形式。这些笔记本足以与所有人分享:
| 姓名 | 描述 | 链接 |
|---|---|---|
| ?使用pytorchtext buccetiterator更好的批次 | 如何使用pytorchtext存储材料对文本数据进行分类以更好地批处理。 | |
| ?使用拥抱的脸部变压器在Pytorch中的预处理变压器模型 | 在您的自定义数据集上预处理67个变形金刚模型。 | |
| ?使用拥抱的脸部变压器,Pytorch中的微调变压器 | 完整的教程有关如何微调文本分类的73个变压器模型 - 无需更改代码! | |
| 使用拥抱的脸部变压器在Pytorch中的内部工作 | 完整有关输入如何流过Bert的教程。 | |
| ? GPT2用于使用拥抱脸的文本分类?变压器 | 有关如何使用GPT2进行文本分类的完整教程。 |
感谢您查看我的仓库。我是一个完美主义者,所以对于小细节,我会做很多更改。
如果您发现有问题,请通过在我的ML_Things Github存储库上打开一个问题,让我知道!
很多教程大部分都是一次性的,并且没有得到维护。我计划尽可能保持最新的教程。
? Github:Gmihaila
网站:gmihaila.github.io
? LinkedIn:Mihailageorge
?电子邮件:[email protected]