开源项目是那些人们可以修改和共享的,因为它们对每个人都是开放的。可以以新的方式使用这些作品,将其集成到更大的项目中,或者基于原始作品找到新的作品。开源促进了社区内自由交换思想,以构建创造性和技术性的创新或想法。因此,程序员应该考虑为开源项目做出贡献,原因如下:
1. 它帮助编写更干净的代码。
2. 将更好地理解技术。
3. 为开源项目做出贡献可以帮助获得关注、人气,并可以提升职业生涯。
4. 在简历中添加一个开源项目可以增加它的分量。
5. 提高编码技能。
6. 在用户和商业层面改进软件。
要开始为开源项目做出贡献,有一些先决条件:
1. 学习编程语言:因为在开源贡献中需要编写代码来参与开发,需要学习一种编程语言。这可以是任何选择。根据项目的需求,在后期学习另一种语言是容易的。
2. 熟悉版本控制系统:这些是帮助保持所有更改在一个地方的软件工具,以便在以后需要时可以回忆它们。基本上,它们跟踪在源代码上随时间所做的每一次修改。一些流行的版本控制系统是Git、Mercurial、CVS等。在所有这些中,Git是最受欢迎的,并且在行业中被广泛使用。
现在,将看看一些可以贡献的令人惊叹的开源项目。让开始吧!
1. Caliban
这是一个来自科技巨头谷歌的机器学习项目。它用于开发机器学习研究工作流程和笔记本在一个隔离和可复制的计算环境中。它解决了一个大问题。当开发人员构建数据科学项目时,很多时候很难构建一个测试环境,可以展示项目在现实生活情境中的表现。不可能预测所有的边缘情况。因此,Caliban是这个问题的潜在解决方案。Caliban使得在本地开发任何ML模型变得容易,在机器上运行代码,然后尝试在云环境中执行完全相同的代码。因此,Docker化的研究工作流程在本地和云中都变得容易。
GitHub链接:
2. Kornia
Kornia是用于PyTorch的计算机视觉库。它用于解决一些通用的计算机视觉问题。Kornia建立在PyTorch之上,依赖于其效率和CPU能力,以便它可以计算复杂的函数。Kornia是用于训练神经网络模型和执行图像转换、图像过滤、边缘检测、极线几何、深度估计等的库集合。
GitHub链接:
Analytics Zoo是一个统一的数据分析和AI平台,将TensorFlow、Keras、PyTorch、Spark、Flink和Ray程序整合到一个集成的管道中。这可以有效地从笔记本电脑扩展到大型集群,以处理大数据的生产。这个项目由Intel-analytics维护。Analytics Zoo以以下方式帮助AI解决方案:
帮助轻松地原型化AI模型。
有效管理扩展。
帮助将自动化流程添加到ML管道中,如特征工程、模型选择等。
GitHub链接:
4. MLJAR Automated Machine Learning for Humans
Mljar是一个平台,用于创建原型模型和部署服务。为了找到最佳模型,Mljar搜索不同的算法并执行超参数调整。它通过在云端运行所有计算并最终创建集成模型,提供有趣的快速结果。然后它为从AutoML训练中创建报告。这不是很酷吗?
Mljar有效地训练模型用于二元分类、多类分类、回归。
它提供两种类型的接口:
它可以在网络浏览器上运行ML模型
提供Mljar API的Python包装器。
从Mljar收到的报告包含一个表格,其中包含有关每个模型得分和训练每个模型所需的时间的信息。性能显示为散点图和箱形图,因此很容易直观地检查哪些算法在所有算法中表现最好。
文档:
源代码:
5. DeepDetect
DeepDetect是一个用C++编写的机器学习API和服务器。如果想使用最先进的机器学习算法,并希望将它们集成到现有应用程序中,DeepDetect适合。DeepDetect支持广泛的任务,如分类、分割、回归、目标检测、自编码器。它支持图像、时间序列、文本等类型的数据的监督和无监督深度学习。但DeepDetect依赖于外部机器学习库,如:
深度学习库:Tensorflow、Caffe2、Torch。
梯度提升库:XGBoost。
T-SNE聚类。
GitHub链接:
6. Dopamine
Dopamine是科技巨头谷歌的一个开源项目。它用Python编写。这是一个用于快速原型化强化学习算法的研究框架。
Dopamine的设计原则是:
简单实验:Dopamine使新用户能够轻松运行实验。
它紧凑且可靠。
它还促进了结果的可重复性。
它灵活,因此使新用户能够轻松尝试新的研究想法。
注意:查看这些以了解如何使用Dopamine。
GitHub链接:
7. TensorFlow
TensorFlow是最著名的、流行的,也是GitHub上最好的机器学习开源项目之一。它是一个用于数据流图的数值计算的开源软件库。它有一个非常易于使用的Python接口,没有其他语言的不需要的接口来构建和执行计算图。TensorFlow提供了稳定的Python和C++ API。TensorFlow有一些惊人的用例,如:
在语音/声音识别中
基于文本的应用程序
图像识别
视频检测
…等等!
GitHub链接:
8. PredictionIO
它建立在一个最先进的开源栈之上。这个机器学习服务器是为数据科学家设计的,用于为任何ML任务创建预测引擎。它的一些惊人特性是:
它有助于快速构建和部署一个引擎作为一个可定制的生产模板上的Web服务。
一旦部署为Web服务,就可以实时响应动态查询。
它支持机器学习和数据处理库,如OpenNLP、Spark MLLib。
它还简化了数据基础设施管理
GitHub链接:
9. Scikit-learn
它是一个基于Python的免费软件机器学习库。它提供了各种算法,用于分类、回归、聚类算法,包括随机森林、梯度提升、DBSCAN。这是建立于SciPy之上的,必须预先安装,以便可以使用sci-kit learn。它还提供了模型,用于:
集成方法
特征提取
参数调整
流形学习
特征选择
降维
注意:要学习scikit-learn,请遵循。
GitHub链接:
10. Pylearn2
Pylearn2是所有Python开发人员中最普遍的机器学习库。它基于Theano。可以使用数学表达式来编写其插件,而Theano则负责优化和稳定。它有一些很棒的特性,如:
一个“默认训练算法”来训练模型本身
模型估计标准
分数匹配
交叉熵
对数似然
数据集预处理
对比度归一化
ZCA白化
补丁提取(用于实现类似卷积的算法)
GitHub链接:
结束语:
为开源做出贡献带来了太多的好处。所以,这些是一些好的开源项目可以贡献。