【大厂AI课学习笔记NO.68】开源和开源发展情况

开源即源代码公开,任何人能获取源代码,查看、修改、分发他们认为合适的代码。

依托同行评审和社区生成,旨在以分散、协作的方式开发。

我们曾经很详细的讨论过开源协议的问题,详细可以参考我的文章:

https://giszz.blog.csdn.net/article/details/134460066

【AI】马斯克说大模型要开源,我们缺的是源代码?(附一图看懂6大开源协议)

核心其实就是这张图,要考的哦!

 

MIT协议是嘴宽松的协议,损失概不负责而已,这当然,难道你用了开源框架,还要去碰瓷吗?

从发展的角度来讲:

 

美国还是开源最繁荣的地方,没有占据了三分之二的项目,另外体量比较的是中国。

目前企业、高效研究机构、组织和个人,分别占据了三分之一。

人工智能的开源项目,从2007年以后,开始推动。深度学习框架开始繁荣。

目前还是我们介绍过的人工智能机器学习框架TensorFlow使用的人最多,重复发明轮子,已经不是需要了。

如同最近老周红衣说的,人工智能的未来在行业应用,中国有最大的市场,最多的数据,人工的智能的发展,离不开中国的参与。

延伸学习:


在人工智能领域,开源框架是推动技术创新和发展的重要力量。这些框架为研究者、开发者和企业提供了构建、训练和部署机器学习模型的工具。下面将详细介绍几个著名的开源框架,包括它们的特性、应用场景和特点。

1. TensorFlow

TensorFlow最初由Google Brain团队开发,是目前应用最广泛的深度学习框架之一。它支持广泛的硬件平台,包括CPU、GPU和TPU,并提供了从高级Keras API到低级TensorFlow API的多层次接口。

特性

  • 灵活性:TensorFlow支持静态图和动态图(通过Eager Execution),使得它既适合高效生产环境,也适合快速原型开发。
  • 可扩展性:TensorFlow可以轻松地在多个硬件上高效地进行分布式训练。
  • 生态系统:TensorFlow拥有庞大的社区和丰富的生态系统,包括TensorBoard可视化工具、TensorFlow Hub模型库和TensorFlow Lite移动端部署工具。

应用场景

  • 图像识别:TensorFlow在图像分类、目标检测和图像生成等任务中表现出色。
  • 语音识别和自然语言处理:TensorFlow常用于构建语音识别系统、机器翻译和文本生成等NLP任务。
  • 强化学习:TensorFlow提供了用于构建和训练强化学习模型的工具。

特点

  • 静态图与动态图结合:TensorFlow 2.x版本结合了静态图和动态图的优点,提高了易用性和灵活性。
  • 广泛的硬件支持:TensorFlow支持多种硬件平台,使得训练和部署更加便捷。
  • 强大的生态系统:TensorFlow的生态系统提供了丰富的预训练模型和工具,加速了模型开发和部署的过程。

2. PyTorch

PyTorch是由Facebook人工智能研究院研发的开源机器学习框架。它以其动态图、易用性和高效的GPU加速功能而受到欢迎。

特性

  • 动态图:PyTorch使用动态计算图,具有高效的内存使用和灵活的调试能力。
  • 易用性:PyTorch的API简洁明了,易于学习和使用。
  • 高效GPU加速:PyTorch支持GPU加速,可以显著提高训练和推理速度。

应用场景

  • 自然语言处理:PyTorch在自然语言处理任务中表现出色,如文本分类、情感分析和机器翻译等。
  • 计算机视觉:PyTorch常用于图像识别、目标检测、图像分割和图像生成等任务。
  • 语音处理:PyTorch也适用于语音识别和语音合成等任务。

特点

  • 动态图和高效内存管理:PyTorch的动态图特性使得模型开发和调试更加直观和高效。
  • 简洁的API:PyTorch的API设计简洁明了,降低了学习门槛。
  • 活跃的社区:PyTorch拥有活跃的社区和丰富的开源项目,为开发者提供了良好的学习和交流环境。

3. Keras

Keras是一个高层神经网络API,可以运行在TensorFlow、Microsoft-CNTK或Theano之上。它以其简洁性、模块化和可扩展性而受到欢迎。

特性

  • 简洁性:Keras提供了简洁明了的API,使得模型定义和训练变得简单直观。
  • 模块化:Keras的模型是由可配置的模块组成的,这些模块可以以各种方式进行组合。
  • 可扩展性:Keras支持自定义层、损失函数和优化器等组件,方便用户进行扩展。

应用场景

  • 图像分类:Keras常用于构建和训练图像分类模型。
  • 文本处理:Keras可以处理文本数据,用于情感分析、文本分类等任务。
  • 时间序列预测:Keras也适用于时间序列数据的预测和分析。

特点

  • 易于上手:Keras的简洁性和模块化使得初学者能够快速上手。
  • 高度可定制:Keras支持自定义组件,方便用户根据需求进行定制。
  • 与TensorFlow的兼容性:Keras可以作为TensorFlow的高级API使用,享受TensorFlow的生态系统和硬件支持。

4. MXNet

MXNet是由亚马逊人工智能研究院研发的深度学习框架。它以其高效性、灵活性和可扩展性而受到关注。

特性

  • 高效性:MXNet在训练和推理速度上表现出色,特别适用于大规模数据集和分布式训练。
  • 灵活性:MXNet支持多种编程语言和平台,包括Python、C++、R和Scala等。
  • 可扩展性:MXNet支持自定义层和操作符,方便用户进行扩展和定制。

应用场景

  • 图像识别:MXNet常用于图像分类和目标检测等计算机视觉任务。
  • 自然语言处理:MXNet也适用于机器翻译、文本生成等NLP任务。
  • 自动驾驶:MXNet在自动驾驶领域也有一定的应用,如车辆检测和路径规划等。

特点

  • 混合精度训练:MXNet支持混合精度训练,可以显著提高训练速度和减少内存消耗。
  • 跨平台兼容性:MXNet支持多种编程语言和平台,使得模型开发和部署更加灵活。
  • 与AWS的集成:MXNet与亚马逊的AWS云服务紧密集成,方便用户在云上进行模型训练和部署。

总结

以上介绍了TensorFlow、PyTorch、Keras和MXNet这四个著名的开源人工智能框架。它们各有特点,适用于不同的应用场景。TensorFlow以其灵活性和可扩展性在多个领域广泛应用;PyTorch以其动态图和易用性受到研究者和开发者的喜爱;Keras以其简洁性和模块化使得初学者能够快速上手;MXNet以其高效性和跨平台兼容性在特定领域表现出色。选择合适的框架取决于具体的应用需求、硬件资源和开发者的熟悉程度。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CaricatureFace 学习笔记

目录 3d人脸重建开源项目汇总 CaricatureFace 依赖项: 有的电脑安装失败: 3d人脸重建开源项目汇总 3D人脸重建开源项目整理_reconstruction 项目-CSDN博客 2020 CVPR 漫画三维人脸重建) CaricatureFace 依赖项: openmesh 有的电脑安…

高频设计模式

文章目录 高频设计模式单例模式饿汉式(Eager Initialization)懒汉式(Lazy Initialization)双重校验锁(Double-Checked Locking)静态内部类(Static Inner Class)枚举(Enum…

LeetCode-1004. 最大连续1的个数 III

每日一题系列(day 20) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50…

软考高级:耦合分类(内容耦合、公共耦合、外部耦合等)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

docker部署在线聊天室平台Fiora

Fiora 是一款开源免费的在线聊天系统 https://github.com/yinxin630/fiora 部署 创建docker网络 docker network create fiora-networkdocker-compose部署 vim docker-compose.yml version: 3 services:fiora_redis:image: rediscontainer_name: fiora_redisrestart: alway…

Vue3 子/父组件相互调用

1&#xff1a;子组件调用父组件 父组件&#xff1a; <template><div><button style"margin: 50px">父按钮</button> <!--已clk为名称的事件传递给子组件&#xff0c;传递的是父组件的a函数/事件 --><Child clk"a" />…

huggingface实现Bark模型

目录 引言 使用半精度 使用CPU卸载 使用Better Transformer 使用Flash Attention 2 安装 使用 组合优化技术 使用技巧 BarkConfig 实例化 BarkConfig 参数说明 BarkProcessor 参数 __call__ 方法 from_pretrained 方法 save_pretrained 方法 BarkModel 生成…

电脑解锁后黑屏有鼠标--亲测!!不需要重装系统!!

问题&#xff1a;上周电脑黑屏&#xff0c;只有鼠标&#xff0c;鼠标还不能右键&#xff01;&#xff01; 中招&#xff1a;win10系统最新版火绒安全 &#xff0c;那你有概率获得开机黑屏套餐一份。 原因是&#xff1a;火绒把我们的explorer删除了导致黑屏&#xff0c;这个文…

【OpenGL手册11】材质的模型

目录 一、说明二、材质表面和光照三、设置材质四、光的属性五、不同的光源颜色练习 一、说明 在现实世界里&#xff0c;每个物体会对光产生不同的反应。比如&#xff0c;钢制物体看起来通常会比陶土花瓶更闪闪发光&#xff0c;一个木头箱子也不会与一个钢制箱子反射同样程度的…

1分钟带你学会使用装饰器编写Python函数

1.需求 向 test() 函数中&#xff0c;新增一个功能&#xff0c;多输出一句话"给他补铁" def test():print("水中放吸铁石") # test()# 第一种方式&#xff1a;重写函数 def test():print("水中放吸铁石")print("给他补铁") test()# …

Hibernate是如何处理事务的?请描述一下Hibernate的事务管理。Hibernate中的缓存机制是怎样的?如何配置和使用缓存?

Hibernate是如何处理事务的&#xff1f;请描述一下Hibernate的事务管理。 Hibernate是一个强大的Java ORM框架&#xff0c;它提供了对数据库事务的透明管理。Hibernate的事务管理基于Java的JTA&#xff08;Java Transaction API&#xff09;和JDBC&#xff08;Java Database Co…

什么是移动计算?中国Java之父余胜军被刷爆的CDN又是什么?

移动计算 移动计算通常指的是将计算任务从其原始位置转移到距离数据存储地更近的地点进行处理的概念。这个概念基于一个核心原则&#xff1a;数据传输的成本&#xff08;包括时间、带宽和资源消耗&#xff09;通常高于将计算任务移动到数据所在位置的成本。因此&#xff0c;移…

自增自减运算符 i++,++i,i--,--i小窍门

符号在前就先加/减&#xff0c;符号在后就后加/减 在写代码的过程中&#xff0c;常见的一种情况是需要某个整数类型变量增加 1 或减少 1&#xff0c;Java 提供了一种特殊的运算符&#xff0c;用于这种表达式&#xff0c;叫做自增运算符&#xff08;)和自减运算符&#xff0…

py脚本模拟json数据,StructuredStreaming接收数据存储HDFS一些小细节 ERROR:‘path‘ is not specified

很多初次接触到StructuredStreaming 应该会写一个这样的案例 - py脚本不断产生数据写入linux本地&#xff0c; 通过hdfs dfs 建目录文件来实时存储到HDFS中 1. 指定数据schema&#xff1a; 实时json数据 2. 数据源地址&#xff1a;HDFS 3. 结果落地位置&#xff1a; HDFS …

高级语言讲义2010软专(仅高级语言部分)

1.编写一程序&#xff0c;对输入的正整数&#xff0c;求他的约数和。 如&#xff1a;18的约数和为1236939 #include <stdio.h>int getsum(int n){int i,sum0;for(i1;i<n;i)if(n%i0)sumi;return sum; } int main(){int sum getsum(18);printf("%d",sum); …

NOIP2004 提高组 津津的储蓄计划(选自洛谷P1089)

题目描述 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300300 元钱&#xff0c;津津会预算这个月的花销&#xff0c;并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄&#xff0c;妈妈提出&#xff0c;津津可以随时把整百的钱存在她那里&#xff0c;到…

PCB检测,基于YOLOV8NANO

PCB检测&#xff0c;基于YOLOV8NANO&#xff0c;训练得到PT模型&#xff0c;转换成ONNX&#xff0c;只需要OPENCV&#xff0c;支持C/PYTHON/ANDROID开发PCB检测&#xff0c;基于YOLOV8NANO&#xff0c;只需要OPENCV

每日一题leetcode第2834:找出美丽数组的最小和

目录 一.题目描述 二.思路及优化 三.C代码 一.题目描述 二.思路及优化 首先我们看到这个题&#xff0c;就是根据给出的数组元素个数N&#xff0c;从[1&#xff0c;N]找出N个元素&#xff0c;使得N个元素的和最小&#xff0c;其中随便抽两个数出来&#xff0c;两个数之和不能为…

如何查看resnet网络的中间输出特征和卷积核的参数

查看中间层的特征&#xff0c;需要在定义Model时&#xff0c;在forward时&#xff0c;将中间要显示的层输出。 def forward(self, x):outputs []x self.conv1(x)outputs.append(x)x self.bn1(x)x self.relu(x)x self.maxpool(x)x self.layer1(x)outputs.append(x)# x se…

基于MapReduce的汽车数据清洗与统计案例

数据简介 ecar168.csv&#xff08;汽车销售数据表&#xff09;&#xff1a; 字段数据类型字段说明rankingString排名manufacturerString厂商vehicle_typeString车型monthly_sales_volumeString月销量accumulated_this_yearString本年累计last_monthString上月chain_ratioStri…