首页 新闻 会员 周边 捐助

各种 DL框架 的底层是 C/C++?

0
悬赏园豆:50 [已解决问题] 解决于 2023-06-09 10:42

DL(深度学习) 框架:TensorFlow、PyTorch、Theano、PaddlePaddle……
对了,百度的 PaddlePaddle 是开源的吗?

除了 DL学习框架,还有 ML(机器学习) 框架(Scikit-learning、Spark MLlib、Theano) 呢?

另外问题,Transformer、GPT、Bert、强化学习 等 不是基于 DL框架 或 ML框架写的吧?

快乐的欧阳天美1114的主页 快乐的欧阳天美1114 | 老鸟四级 | 园豆:4010
提问于:2023-06-08 08:45
< >
分享
最佳答案
0

1.各种深度学习框架的底层实现都是使用 C/C++ 或其他高效编程语言来提高计算性能,从而加速深度学习模型的训练和推理。
例如,TensorFlow 和 Theano 的底层代码主要用 C++ 实现,同时还包括 CUDA 和 cuDNN 等开源库以支持 GPU 计算;PyTorch 的底层代码也采用了 C++ 实现,并且可以利用 CUDA 和 cuDNN 在 GPU 上加速计算;PaddlePaddle 则使用 C++ 和 CUDA 编写了底层计算库。
虽然这些框架的 API 接口通常是使用 Python 编写的,但是框架内部部分核心代码仍然需要使用更高效的编程语言来进行计算,并通过 Python 与用户交互。
2.百度的 PaddlePaddle 是开源的。
3.与深度学习框架类似,许多机器学习框架也使用 C++ 等高效编程语言实现其底层代码以提高运行性能。
例如,Theano 是一个用于深度学习和各种机器学习算法的计算库,底层代码基于 C++ 实现;Scikit-learn 是一个常用的机器学习工具包,部分核心算法(如 k-means)也是使用 C++ 实现的;Spark MLlib 是 Apache Spark 的分布式机器学习库,其底层也使用了大量的 Java 和 Scala 代码以支持分布式计算。
当然,并不是所有的机器学习框架都需要使用 C++ 或其他高效编程语言实现其底层代码。一些更加轻量级的机器学习库,如 Scikit-learn,可能采用了 Python 的原生数据类型和运算符实现了其大部分功能。
4.Transformer、GPT、Bert 等属于自然语言处理领域的前沿技术,它们都是基于深度学习框架或机器学习框架实现的。

例如,Transformer 是由 Google 提出的一种用于处理序列数据的模型结构,在许多自然语言处理任务中取得了很好的效果,其底层实现是基于 TensorFlow 和 PyTorch 这样的深度学习框架的。
GPT (Generative Pre-trained Transformer)是 OpenAI 开发的一种基于 Transformer 架构的自然语言处理模型,在大规模无监督数据上进行预训练后,能够在多个下游自然语言处理任务中取得最先进的效果。GPT-3 模型就是使用了极大规模的参数和数据集,被认为是目前最强的人工智能模型之一,而其底层实现同样是基于 PyTorch 和其他深度学习框架的。
Bert(Bidirectional Encoder Representations from Transformers)是 Google 开发的一种语言表示模型,可以用于文本分类、命名实体识别、问答任务等自然语言处理问题,在泛化能力方面也具有非常优秀的表现。其底层实现同样基于 TensorFlow。
强化学习也可以使用深度学习框架实现,例如深度 Q 网络(Deep Q-Network,DQN)算法就是使用深度神经网络进行近似 Q 值函数的训练。在实际应用中,强化学习算法也需要与其他技术结合使用,例如分布式计算、异步更新等,这些都可以借助深度学习框架或机器学习框架来实现。

收获园豆:23
lanedm | 老鸟四级 |园豆:2396 | 2023-06-08 15:07

感谢感谢!
您这回答真的太详细了,我再消化消化!
后面我再去了解下。

快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-08 16:24
快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-08 16:25

🥂

下面是 GitHub 找到的(前面自己又点懒了🐟)

PaddlePaddle
https://github.com/PaddlePaddle

tensorflow
https://github.com/tensorflow

PyTorch
https://github.com/pytorch

快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-09 05:43
快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-09 05:44
其他回答(2)
0

学习。。。。

收获园豆:4
tea2007 | 园豆:3 (初学一级) | 2023-06-08 11:53

1

支持(0) 反对(0) 快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-08 14:03
0

大多数深度学习(DL)框架的底层实现确实是使用 C/C++ 编写的。这是因为 C/C++ 具有高性能和低级别的特性,适合处理底层计算任务。常见的 DL 框架如 TensorFlow、PyTorch、Theano 和 PaddlePaddle 都使用 C/C++ 实现了底层的计算图和数值计算操作,同时提供了 Python 或其他高级语言的接口来方便用户使用和构建模型。

关于 PaddlePaddle,它是百度开发的一个深度学习框架,而且是开源的。你可以从 PaddlePaddle 的官方网站(https://www.paddlepaddle.org.cn/)获得更多信息,包括源代码、文档和示例。

除了深度学习框架,机器学习(ML)框架也存在。一些常见的 ML 框架包括 Scikit-learn、Spark MLlib 和 Theano。它们提供了丰富的机器学习算法和工具,用于构建和训练机器学习模型。这些框架在底层也可能使用 C/C++ 或其他语言进行性能优化和底层计算。

关于 Transformer、GPT、BERT 和强化学习等算法和模型,并不是基于特定的 DL 框架或 ML 框架编写的。它们是特定的模型架构或算法,在不同的框架中都可以实现。DL 框架或 ML 框架提供了构建、训练和部署这些模型的工具和库,但这些模型本身并不依赖于特定的框架。

总结一下,DL 和 ML 框架的底层通常使用 C/C++ 或其他低级别语言实现,而算法和模型不依赖于具体的框架,可以在多个框架中实现和使用。

如果你对特定框架或算法有更具体的问题,欢迎提问,我会尽力回答。

收获园豆:23
Technologyforgood | 园豆:7775 (大侠五级) | 2023-06-08 23:09

谢谢您了!
刚刚去GitHub看了下,大概了解了 一些框架的 底层实现语言了。

对于 各种模型,Transformer 是 一种 基础结构吧(Google在2017年的著名论文提出的),
Bert、GPT是基于 这个结构的 神经网络(算法、方法)的实现。
Bert 应该是基于 TF 实现(TODO),,而 GPT 则两者都有可能,使用 TF的实现的可能性更大些——前面看资料说,TF更适合于工业实践,而 PyTorch 更研究、学习(自己没玩过,不好说呢)。

🥂

支持(0) 反对(0) 快乐的欧阳天美1114 | 园豆:4010 (老鸟四级) | 2023-06-09 05:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册