即使对于有一定基础的人来说,如果之前没有接触过python,学习深度学习的时候,对一些工具和依赖库依然会感到陌生,我自己就是学Java的,最近在学习深度学习,对 python接触不多,因此对其中一些工具并不熟悉,所以整理了一些常用的介绍一下,当然后续可能还会增加

1. Pycharm
这个就不多说了,写python的编辑器IDE,这要不知道,说明没学过python
2. Andaconda
Anaconda是一个开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化软件包管理系统和部署。Anaconda透过Conda进行软件包管理,并拥有许多适用于Windows、Linux和MacOS的数据科学软件包。
简单来说,它就是用来管理环境的 ,我们知道,每个项目所用到的依赖、python版本等都是不一样的,也就是说,每个项目的运行环境都是不一样的 ,当你项目很多的时候,就会有很多环境,切换一个项目就要重新下载或者说重新导入一次环境,无疑是很麻烦的,因此我们需要有一个工具来管理环境。
Andaconda就是这样的一个工具,可以理解为,一个大房子,里面有很多小房间,每一个小房间都是属于某个项目专属的环境,这样我们只要统一配置一次,之后想用哪个环境就切换到哪个环境,就很方便了。
3. PyTorch

PyTorch、TensoFlow和Keras就是我们搭建神经网络的框架
我们在搭建神经网络的时候,不同的网络模型线性回归、逻辑回归、CNN、LSTM等,它们都是很复杂的,底层都是很多数学公式、向量运算等,我们开发的时候不可能一点一点自己来搭建的,这些框架里面就有很多别人封装好的对应的函数,帮助我们快速搭建神经网络。
在早些年,TensoFlow和Keras用的比较多,不过现在明显PyTorch兴起了,取代了这两个,不过底层原理和使用方式都差不多的
4. CUDA


CUDA,是显卡厂商NVIDIA推出的运算平台。通俗解释:CUDA就是让python等程序语言可以同时在CPU和GPU上跑 的一个平台 。CUDA就是由CUDA驱动(CUDA)和**CUDA工具包(CUDAToolkit)**组成。
简单来说,就是有显卡才能用CUDA,我们所说的安装CUDA,其实就是安装CUDAToolkit这个工具包,只有这个工具包,才能使我们的代码在GPU上运行。所以说CUDA是一个平台,不是一个软件。

显卡厂商也很多,但是必须要是英伟达的显卡才能用CUDA,AMD的不行,AMD有自己的运算平台。
5. cuDNN
cuDNN的全称为NVIDIA CUDA Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作 而设计基于GPU的加速库 。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。CUDA这个平台一开始并没有安装cuDNN库 ,当开发者们需要用到深度学习GPU加速时才安装cuDNN库 ,工作速度相较CPU快很多。
简单来说,我们现在有GPU、有驱动、有CUDA工具包了,可以跑代码了,但是驱动、CUDA没有对我们的GPU进行优化 ,不然还以为你要打游戏呢,如果你别的事都不干,就为了深度学习,那岂不是可以有指向性的对GPU优化一下吗,因此需要额外安装一个cuDNN,会让我们深度学习代码跑的更快。
6. 常用的编程环境
1. python
这不用多说,选择自己适合的版本就好
2.pytorch
前面介绍过了,选版本就好
3. Cudatookit
Cuda的工具包,驱动,为了用上GPU
要注意,安装CUDA的时候版本也要适配自己电脑的显卡,不是什么版本都可以用的。
4. Cudnn
加速GPU
值得一提的是,Cudatookit和Cudnn版本要对应,版本之间是有适配关系的。
5. torchsummary
这个是用来显示我们神经网络模型参数的,比如说根据一些打印参数,判断模型结构正不正确,模型会不会参数太多跑不动,或者帮我们介绍自己的模型。
6. numpy
就是帮我们处理矩阵,处理向量运算的一个数据处理的库
7. pandas
这个就是专门用来处理Excel和csv格式 的文件,我们一般数据集都在excel和csv中,所以通常和numpy一起来处理数据
8. matplotlib
就是用来画图的,最终是要用图形去展示里面的一些,损失函数、精度,包括你写论文也是要展示其中的一些图。
9. sklearn
用来做机器学习的一些处理的,还包括实验数据处理的一个库
就是里面有线性回归、逻辑回归等经典算法,不需要我们重复造轮子
