找回密码
 立即注册
查看: 965|回复: 5

为什么AI的深度学习,基本上都跟python这门语言有关,其它语言难道搞不定?

[复制链接]

1

主题

0

回帖

25

积分

新手上路

积分
25
发表于 2023-5-12 09:48:24 | 显示全部楼层 |阅读模式
比来想学习AI中的深度学习,发现很多平台和模型都是要用到python这门语言,而鲜见java、C#等,这是为什么?
回复

使用道具 举报

0

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2023-5-12 09:48:34 | 显示全部楼层
java、C#及其他编程语言可以用来做深度学习,但显然Python更适合。
Python更适合深度学习,主要有这几个原因:

  • 第一,深度学习的重点是研究和应用程序,编程只是实现的工具,编程语言越简单越容易上手;
  • 第二,Python是一种易于访问的语言,在此基础上还有很多优秀的库,这让人专注于研究本身;
  • 第三,Python可以用于处理高效的C/C++算法,这是深度学习库在Python中高效运行的原因;
<hr/>1.什么是深度学习

在介绍深度学习之前,我们先看下人工智能,机器学习和深度学习之间的关系:


机器学习是实现人工智能的一种途径,深度学习是机器学习的一个子集,也就是说深度学习是实现机器学习的一种方法。与机器学习算法的主要区别如下图所示:


传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学习方法不需要人工,而是依赖算法自动提取特征。深度学习模仿人类大脑的运行方式,从经验中学习获取知识。这也是深度学习被看做黑盒子,可解释性差的原因。
随着计算机软硬件的飞速发展,现阶段通过深度学习来模拟人脑来解释数据,包括图像,文本,音频等内容。目前深度学习的主要应用领域有:

  • 智能手机
  • 语音识别
比如苹果的智能语音助手siri

  • 机器翻译
谷歌将深度学习方法嵌入到谷歌翻译中,能够支持100多种语言的即时翻译。

  • 拍照翻译
  • 自动驾驶
当然在其他领域也能见到深度学习的身影,比如风控,安防,智能零售,医疗领域,推荐系统等
2 发展历史



3 TensorFlow 框架

深度学习框架TensorFlow一经发布,就受到了广泛的关注,并在计算机视觉、音频处理、推荐系统和自然语言处理等场景下都被大面积推广使用,现在已发布2.3.0版本,接下来我们深入浅出的介绍Tensorflow的相关应用。

  • TensorFlow Core学习指南:很多指南是以 Jupyter 笔记本的形式编写而成,并直接在 Google Colab(一种无需设置的托管式笔记本环境)中运行;
  • stackoverflow提问:一个问答社区,你学习过程中遇到的任何问题都可以在这里解决;
  • TensorFlow Forum社区:在初期的学习都会有很多TensorFlow的学习讨论,你也可以加入;
  • tensorflow的Github开源库:帮助你开源学习,了解更多开源项目;
TensorFlow的依赖视图如下所示:



  • TF托管在github平台,有google groups和contributors共同维护。
  • TF提供了丰富的深度学习相关的API,支持Python和C/C++接口。
  • TF提供了可视化分析工具Tensorboard,方便分析和调整模型。
  • TF支持Linux平台,Windows平台,Mac平台,甚至手机移动设备等各种平台。
4 书籍推荐


  • 《深度学习》by Ian Goodfellow, Yoshua Bengio, Aaron Courville
  • 《探索深度学习》by Andrew W. Trask
  • 《Python 深度学习》by Francois Chollet
  • 《Scikit-Learn与TensorFLow机器学习实用指南》by Aurélien Géron
  • 《百页机器学习》 by Andriy Burkov
  • 《强化学习:导论(第二版)》by Richard S. Sutton, Andrew G. Barto
  • 《深入强化学习实践》by Maxim Lapan
  • 《从数据中学习》by Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin.
  • 《解释为什么》by Judea Pearl, Dana Mackenzie.
  • 《机器学习秘籍》by Andrew Ng.
  • 《可解释机器学习》by Christoph Molnar.
  • 《神经网络与深度学习》by Michael Nielsen.
5 课程资源

课程:3 天带你玩转 Python 深度学习 TensorFlow 框架

  • Python深度学习:深度学习与机器学习区别
  • Python深度学习:深度学习框架
  • Python深度学习:TensorFlow结构
  • Python深度学习:图的介绍
  • Python深度学习:Tensorboard的介绍
  • Python深度学习:Operation的介绍
  • Python深度学习:会话的介绍
  • Python深度学习:张量的属性与生成
  • Python深度学习:张量的修改与运算
  • Python深度学习:变量的介绍
  • Python深度学习:基础API和高级API
  • Python深度学习:案例:自实现线性回归
这些量化交易系列文章送给你:

以及机器学习相关:

我是 @黑马程序员Python 希望能帮助大家顺利学习python,少走弯路,欢迎关注喔!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

4

回帖

8

积分

新手上路

积分
8
发表于 2023-5-12 09:48:42 | 显示全部楼层
首先, 是都和 C++ 有关, 还有比 C++ 更令人头大的 CUDA
其他语言的话, 坚决演进的就一个 Julia 了吧, 其他纯 Java, 纯 Rust 都是玩具罢了.
Python 那真的是生态好, 几个巨头都带着玩.
这东西没有巨头带就是不行, 大公司都玩不动, 小公司就是送.
分享一个小公司小语言的惨痛经历
<hr/>我第一次见深度学习是 16 年的 Image Style Transfer(IST)
当时我还在写 Wolfram, 那天 Mathematica 讨论组里放出了风格迁移的星月夜
当时讨论组就炸了, 这个真的是任何传统手段都难以望其项背的效果
Mathematica 挺进深度学习就这样被提上了日程, 后来综合观察了一下口碑, Wolfram 的技术选型就选了 MXNet
当时自我感觉良好, 现在看还不如押宝 TF
再说一遍这玩意儿没巨头真带不动, 现在还在用 MXNet 的公司, 那......
不过反正大家早期都半斤八两, 社区优势也没啥, 大不了我自己造算子呗
17年我在 Wolfram 复现的 Progressive Growing of GANs(PGGAN)


PGGAN 当年还是相当惊艳的
结构现在看来整体相当简单, 要手写的算子也就 PixelNorm 一个, 也是个非常简单的算子.
计算力现在看来, 就这?
<hr/>18 年上半年感觉就不行了, 没有一个强大的社区带, 那年花式 Norm, 花式 Attention, Paper 井喷
压根实现不过来, 全部自己写太不现实了, 只能挑重点.
18 年我国内跟进的 Style-Based Generator Architecture (StyleGAN)
因为之前有个 StarGAN 还是什么玩意儿, 记不清了, 反正不能缩写为 SGAN


StyleGAN 效果拔群, 其他 GAN 都歪瓜裂枣的, 就他有个人样
原版 StyleGAN 的实现有问题, 会有个伪影, 是连续8个FC放大了某个随机 bug, 我从头实现的就没这个伪影.
算子还行吧, 就一个 AdaIN, loss 稍微算难的, 主要就研究源码里这个 loss
源码魔改了 TF, 直接把我给看蒙了, 没见过这种操作
但是计算量那是突破个人显卡的水平了, 不过还是属于租个高配能玩的地步, 不跑 1024 还是承受得起的
<hr/>后来 SG2 出了, 我一是水平跟不上了, 而是也没那么多卡, 三是 MXNet 都没落了, 四是那年下半年 DL 杀疯了, 我混不到饭吃了
总之, 跟不上版本了, 我就半主动半被动的脱坑了
当时 Wolfram 讨论要不止损转 libtorch, 想了想还是舍不得前期投入, 那就祝 ONNX 能一统天下吧? 我 Emmmmmm
反正这就是我短暂而惨痛的 DL 工作经历,
可以看出这种要烧钱的玩意儿, 你还是得听巨头的, 巨头用啥你用啥, 别和钱过不去

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

1

回帖

-2

积分

限制会员

积分
-2
发表于 2023-5-12 09:48:55 | 显示全部楼层
太长不看系列:表面是Python,背后是C++/C/CUDA。
最流行的Torch,之前流行的TensorFlow,背后实现都是C++/C/CUDA,因为计算密集型的任务必须要C++这种可以把性能做到极致的语言。
但是直接给程序员C++的接口那写起来,调试起来就太痛苦了。特别是现在搞深度学习的很多工作就主要靠调参,硬train一发,或者组合各种trick,运气好就撞上了,这种使用场景就更不能用C++了,不然调一次参编译一次,调参侠们要当场去世。
所以提供流行的脚本语言的绑定,比如PyTorch就是Torch给Python的接口,相当于外面套了层壳子。
要说为什么是Python,不是其他灵活性高的语言,Emmmm,这个只能说是历史的路径依赖了,已经形成生态了,实际上R/MatLab之类的语言里,也有机器学习的工具包。
回复

使用道具 举报

0

主题

2

回帖

13

积分

新手上路

积分
13
发表于 2023-5-12 09:49:09 | 显示全部楼层
python是个胶水语言,涉及性能时,底层还是用C和C++,fortran等实现。
  python学起来的心智负担小于其它语言,各种库的种类繁多,一行代码能实现的功能,用c等可能要上百上千行代码。
     所以即使是使用c等作为工作语言,但验证新想法时,用python可以快速搭出原型。
  由于python节省了大量程序员的时间,所以大伙都说“生命苦短,我用python”。
   当然用python这种动态语言的代价是执行性能受到了损害,还有恼人的GIL。不过对于胶水吗,不能要求太多,pypy,cython也能让你获得类似C的性能。
   生命苦短,我用python!
<hr/>如果训练模型需要落地,用于生产环境,对推断速度有要求时,完全可以训练时使用python调参,模型训练好后,用C++读取模型,进行推断,获得良好性能。
回复

使用道具 举报

0

主题

1

回帖

-1

积分

限制会员

积分
-1
发表于 2023-5-12 09:49:59 | 显示全部楼层
Java有几个活跃的AI技术体系,比如Spark 有自己的 Spark ML。
不过 Python 是一部分 “AI专家“能学会的上限了 ¯\_(ツ)_/¯
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2025-1-5 07:38 , Processed in 0.064446 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表