一.库函数的选择
1.1
我使用的是anconda来管理环境和包,jupyter来写代码。
环境按照我的理解是:硬件+操作系统+编译器+库函数。和做饭需要厨房,厨具,食材,食谱一样。有了这个环境管理可以把不同的工具放一块。有些时候需要旧版本的一套东西,可以配一套旧工具放一块。初学的时候不用在意,有一套够用的就行了。
1.2
在刚开始安装库的时候总认为最新的肯定是最好的,不过在学到使用GPU加速的时候,发现tensorflow2.10.0之后的版本不支持windows系统。在机器学习中使用GPU比CPU快十倍以上,为了后期学习中节约时间,所以从2.15.0又降回了2.10.0。因为不同的包之间有依赖关系,所以numpy也换回了旧版本。CUDA和Cudnn是GPU加速的必要软件,也重装需要卸载干净。从我发现没法用GPU到解决这个问题,花了至少四个小时时间。如果有初学者看到的,在选择版本之前一定要认真的查询,或者直接按照教材(书籍,视频里老师的版本安装)。
我现在使用的是windos10系统 tensorflow2.10.0 cuda11.2 cudnn11.2。
tensorflow会自动调用GPU,或者我们手动设置也可,在代码最前面输入
import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"#我们的CPU和GPU一般只有一个,这是让设置使用“0”号GPU的代码
二.深度学习的编程基础
如果编程基础不牢在学习的时候,看代码会有些地方卡住,比如想使用一部分数据的时候不知道怎么检索,在这种类似的地方卡住,影响效率。
所以在学习机器学习前一定要掌握
MOOC 西安科技大学《神经网络与深度学习》有这方面的知识。可以用来学习
python基础语法知识:尤其是要了解面向对象编程。在python中的很多库,比如numpy库,特点数组就是一个对象,对象有属于自己的属性和“动作”。绘图过程中的坐标轴等也是一个对象,更改坐标轴颜色或者添加注释都是对这个对象的属性进行修改。
numpy库:tensor的张量,numpy的数组,pandas的pandasframe数据,或者矩阵之类的名称,都是高维数据的一些表示方式。矩阵运算是处理机器学习数据的基础。
matlplotlib.pyplot库:绘图在前期观察数据,中期调整模型,后期展示成果非常有用。
pandas库:类似于excel,只不过是用编程的方法操控,数据可以美观的观察。
pillow(图像处理):在深度学习中处理图像占很大一部分。