Keras
主页 |
中文文档 |
10分钟入门Keras指南
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK 或者 Theano 作为后端运行。 Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
TensorFlow
中文主页 |
中文文档
借助 TensorFlow,轻松创建可在任何环境中运行的机器学习模型。 通过交互式代码示例,了解如何使用直观的 API。
Anaconda
主页 |
中文文档/ˌænəˈkɒndə/水蚺(南美洲蟒蛇), Python + 库 + 管理. Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。 Anaconda则是一个打包的集合, 包括了很多工具软件, 还包括了Python.
flowchart LR subgraph Anaconda direction LR p(Python) ~~~ l(Python库) ~~~ vsc(Vscode) ~~~ e(环境管理) end
Anaconda安装
因anaconda包括了Python,安装前应删除电脑上的原Python, 从清华源下载exe文件进行图形界面安装, 安装稳定旧版本.
flowchart LR dell(删除Python) --> download(下载anaconda) --> exe(执行安装) all(所有用户) --> path(修改路径) --> add(添加环境变量) --> reg(注册) --> vsc(安装vsc) cmd(运行cmd) --> command(输入conda --version) --> echo(返回conda x.x.x)conda, miniconda, anaconda
conda是环境管理与安装工具.

conda | miniconda | anaconda |
---|---|---|
安装库与环境管理 | conda + Python + 基本库 | miniconda + 扩展库 + 界面 |
python pip, ananconda conda
修改安装源pip | conda |
---|---|
不一定会安装其他依赖包 | 自动安装其他依赖包 |
维护多个环境难 | 方便管理不同环境 |
仅限python | 可用于其他语言 |
删除Python
在已经安装Python的电脑上若再安装Anaconda应删除原Python, 最好的方式是运行原Python安装包, 但此包安装后一般删除了. 只好用Windows来删除, 删除前可了解一下Python安装位置.
在cmd中输入 "where python" 查看安装路径:
此电脑\属性\高级系统设置\高级\环境变量\RD-SY的用户变量\Path
在上一级目录下还有Python39-32. 可见Python安装在目录下:C:\Users\RD-SY\AppData\Local\Programs\Python
安装了三个Python: (1)Python38, (2)Python38-32, (3)Python39-32
flowchart LR subgraph 本电脑已经安装的Python direction LR p1(Python38) ~~~ p2(Python38-32) ~~~ p3(Python39-32) end
神经元
神经单元是一个复合运算,乘加法经激活函数就是神经单元。激活函数也很简单,但很多种,最简单的是ReLU,这个函数是两个值中小于零的取零,大于零的取本身。
flowchart LR subgraph n[神经元] subgraph 激活函数 direction LR p1?((输入 * w + b)) end end in(输入) --> n --> out(输出)神经网络
输入到多个神经元并输出组成神经网络.
flowchart LR in1(输入1) out1(输出) in2(输入2) in1 --> n1((n1)) in1 --> n2((n2)) in1 --> n3((n3)) in1 --> n4((n4)) in2 --> n1((n1)) in2 --> n2((n2)) in2 --> n3((n3)) in2 --> n4((n4)) n1 --> out1 n2 --> out1 n3 --> out1 n4 --> out1深度神经网络
上面的神经网络仅一层神经单元: n1~n4, 如果这有多层, 就叫深度神经网络, 也叫多层神经网络.
flowchart LR in1(输入) out1(输出) in1 --> n1 --> n2 --> nn --> out1 subgraph n1[第1层] n1.1((n1)) ~~~ n1.2((n2)) ~~~ n1.3((n3)) ~~~ n1.4((n4)) end subgraph n2[第2层] n2.1((n1)) ~~~ n2.2((n2)) ~~~ n2.3((n3)) ~~~ n2.4((n4)) end subgraph nn[第n层] nn.1((n1)) ~~~ nn.2((n2)) ~~~ nn.3((n3)) ~~~ nn.4((n4)) end深度学习
深度学习是用深度神经网络来自动学习对象如图像的特征, 然后让深度神经网络具备识别对象的能力.
flowchart LR subgraph dl[深度学习] subgraph dcnn[深度神经网络] subgraph nn[神经网络] n((神经元)) end end end目标检测
目标检测法是深度学习的一个应用. 检测图像中是否有预期的目标图像. 输入图像, 输出目标名称、置信度、边沿框. 也就是目标检测的任务是分类与定位. 评价指标以下:
- IoU, Interrection over Union, 交并比,越大越好,最大值是1。
- mAP, mean Average Precision, 平均精度均值, 越大越好, 最大值是1.
- FPS, Frame Per Scond, 即每秒多少帧.
目标检测法2012年前采用手工, 2012年后运用深度学习法.
项目 | 传统目标检测法 | 深度学习目标检测法 |
---|---|---|
特征提取法 | 手工设计特征提取算法 | 深度学习法自动提取算法 |
开发要求 | 对开发者要求高 | 对开发者要求低 |
识别精度 | 在某些专用领域识别精度高 | 通用领域精度一般, 能满足商业要求 |
运行速度 | 非常快, 对硬件要求不高 | 快, 需要加速硬件如GPU |
运用工具, 深度学习法开发典型流程如下.
flowchart LR c(收集图片) --> l(标注图片) --> t(训练模型) --> b(部署模型)深度学习是一种通用机器学习法, 通用是指不同领域可使用相同的工具, 机器是指用可用电脑进行操作.撑握这种方法最好的办法是学习工具的运用, 如工具TensorFlow Object Detection API.
迁移学习
深度学习如上图的流程, 需要收集大量图片上千上万的量, 很难, 标注虽然有工具要手工操作, 耗时, 训练即使电脑自动也要耗一定时间. 所以可利用别人已经训练好的通用模型, 经进一步训练成自己自专用的模型,这是很有迁移学习.
flowchart LR nm(别人训练好的模型) --> t(深度学习训练) --> sm(自己专用的模型)