直观地感受
池化
ReLU
Sigmoid
明确概念
人工智能、机器学习、深度学习
人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
机器学习是使计算机具有智能的一类算法,如神经网络算法。
深度学习是机器学习中一种基于对数据进行表征学习的算法,可认为是改良版的神经网络算法。
mxnet、pytorch、tensorflow
待补充
AnaConda、Conda、MiniConda
关于conda
虽说,学习一样知识不应过于关注其以外的内容,就像学习编程语言不应过于关注IDE,能跑就行,学习深度学习,也不应过于关注环境,同样能跑就行。
但我有强迫症,研究conda到底是个什么东西,要从这个Warning说起。
google查询发现是pytorch和CUDA的版本兼容问题,需要cudatoolkit=11.3,但
我的虚拟环境装的CUDA版本就是11.3,所以它可能用了我base环境里的10.3的CUDA。
问题引入完毕,我们先来看看conda到底是什么
Conda 是一个开源包管理系统和环境管理系统。
可见Conda是pip功能的一个超集,不只可以管理包、还可以管理环境。
那让我们看看Conda所管理的环境,事实上这个目录是Conda的base环境。
再看看python环境
可以看到,Conda环境确实是python环境的超集。
再来看看Conda所管理的其他环境,进入~\envs
除Conda自带的base环境外,我还创建了两个Conda环境:gluon
和myenv
进入myenv看看
可见也是python环境的超集。
那么为了区分二者,我们可以简单地认为Conda环境不是python环境,它包含的功能比python环境要多。
接下来介绍一下两种环境如何安装包。
python环境下,python官方推荐使用pip进行包管理。
接下来插入一下多个python环境并存的情况。
当系统中有多个python环境时,比如我有一个python3.9,一个python3.10(下面那个估计是微软自己装的依赖)。
它优先使用的python环境是在系统环境变量中靠上的那个
如图,在系统环境变量中python39比python310靠上,所以在命令行中操作时若输入了二者环境中都有的程序时,会优先使用上面环境中的程序。
下面以pip程序来举个例子
先来看看两个python环境下的pip程序都有哪些
接下来试着调用一下这些程序
当调用两个环境下独有的程序时,使用相应的环境。
当调用两个环境下共有的程序时,使用系统环境变量中靠上的环境。
那么Conda命令行的pip呢?
可以看出这个现象是等价于在我们的python环境变量上方加入了Conda环境。
这样,直接使用pip就会往Conda环境里下载包(装程序)。
同样地,在哪个Conda环境下使用pip,就会往哪个Conda环境里下载包。
conda
命令自不用说,也是往自己的环境里下载包(激活不同的Conda环境一试便知)
既然在Conda命令行下conda install SomePackage
和pip install SomePackage
是往同一个地方下载包,那么他们有什么区别吗?
以下引自其他博客。
pip是用来安装python包的,安装的是python wheel或者源代码的包。从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。
conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。然后,conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。
conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。
这个我比较有感触,比如cudatoolkit它是一个C++库,就只能用conda install cudatoolkit=11.3
,而不能用pip install cudatoolkit==11.3
,注意一点微小的区别,conda install SomePackage
指定版本时要用=
,而pip install SomePackage
指定版本时要用==
。
另外,pip还可以指定版本的上下界,如pip install 'SomePackage>=1.0.4'
。(能不能同时指定还未知)
conda应该也能,暂时用不到就懒得测试了,再说。
另外,我说了半天的cudatoolkit
和NVIDIA的CUDA
是一回事吗?
不是,cudatoolkit
可以理解为CUDA
在深度学习场景下的最小安装,只包含了CUDA中的动态链接库,这样就足以支持深度学习框架。
确实就只有库。
装好了,爽。
jupyter notebook、jupyter lab的优雅启动方式
生成配置文件
jupyter notebook --generate-config
改两行代码,去掉注释使其生效
改默认路径
1
c.NotebookApp.notebook_dir = r'E:\d2l-zh-2.0-pytorch'
改默认浏览器
1
c.NotebookApp.browser = 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe %s'
把快捷方式拷到桌面上
这个快捷方式可以在开始菜单找到
但是怎么创建的我给忘了。。