目录
1. Python概述
发展历程
诞生和发展
2020年8月份编程语言排行榜
Python典型应用方向
2. 基本语法
2.1 安装
2.2 Python数据结构
2.2.1 数字(Number)
2.2.2 字符串(String)
2.2.3 列表(List)
2.2.4 元组(Tuple)
2.2.5 字典(Dict)
2.3 类
2.4 Python JSON
2.5 Python异常处理
3. 机器学习常用库
3.1 Numpy库
3.2 Pandas库
3.3 PIL库
3.4 Matplotlib库
4. 深度学习平台
4.1 主流的深度学习平台
4.1.1 TensorFlow
4.1.2 PyTorch
4.1.3 Keras
4.1.4 MXNet
4.1.5 PaddlePaddle
4.2 PaddlePaddle
4.2.1 飞桨的全景
4.2.2 本地环境搭建
4.3 AI Studio平台
5. 深度学习基础
5.1 深度学习概述
5.1.1 什么是人工智能
5.1.2 什么是机器学习
5.1.3 什么是深度学习
5.1.4 深度学习发展历程
5.2 深度学习入门知识
5.2.1 生物神经元
5.2.2 人工神经元
5.2.3 激活函数
5.2.4 多层神经网络
5.2.5 全连接神经网络
5.2.6 卷积神经网络(CNN)
5.2.7 循环神经网络(RNN)
Python is a programming language that lets you work quickly and integrate systems more effectively.
Python是跨平台的,可以运行在Windows、Mac和各种Unix/Linux系统上,安装方法请自行查找。
目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的,本教程以Python3.5版本为基础(Windows上安装时注意添加环境变量)。
Python代码是以.py为扩展名的文本文件,要运行代码,需要安装Python解释器:
Python Number 数据类型用于存储数值,包括整型、长整型、浮点型、复数。
Python原生支持常用数字运算,例如加、减、乘、除、幂等
Python中其它数学运算常用的函数基本都在math 模块:
Python 随机数
使用+运算符:
使用join运算符:
声明一个列表,并使用下标访问元素:
访问最后一个元素:
访问第一个元素:
列表查询:查询names列表中有没有值为’superman’的元素
列表添加:
列表修改:
列表删除:
列表切片:[]中设置要使用的第一个元素和最后一个元素的索引。牢记:左闭右开。
假设列表元素为:
列表排序:
生成10个不同的随机数,存至列表中,并进行排序
与列表类似,区别是元组中的内容不可修改。
定义无组:定义一个元组,注意元组中只有一个元素时,需要在后面加逗号。
列表转元组:
元组不能修改,所以不存在往元组里加入元素。那作为容器的元组,如何存放元素?
元组截取:
元组的一些函数:max()、min()、sum()、len()这些函数针对序列都是通用的,例如列表、元组、集合等。
元组的拆包与装包
元组元素个数与变量个数相等:
定义一个空字典:注意与定义空集合的区别
定义一个字典的同时,进行初始化
修改字典元素
items():
keys():
values():
字典删除:
定义一个类Animals:
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
JSON序列化与反序列化
官网:https://numpy.org/
Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。其部分功能如下:
官网:https://pandas.pydata.org
Pandas库介绍:
PIL库介绍:
官网:https://matplotlib.org/
Matplotlib库介绍:
目前市面上存在很多深度学习框架,那么如何选择一款合适的框架进行学习、研究或落地呢?
总体的一个建议是:
TensorFlow是歌基于C++开发、发布的第二代机器学习系统。开发目的是用于进行机器学习和深度神经网络的研究。但内部概念众多,结构复杂,API繁重上手困难,版本迭代快而API兼容性存在问题。
TensorFlow官网:https://www.tensorflow.org/ (国内可能打不开)
TensorFlow中文官网:https://tensorflow.google.cn/
github项目地址:https://github.com/tensorflow/tensorflow
PyTorch是Facebook在深度学习框架Torch的基础上使用Python重写的一个全新的深度学习框架,它更像NumPy的替代产物,但其模型部署难度较高,对于工业界应用支持存在比较明显的缺陷。
PyTorch官网:https://pytorch.org/
github项目地址:https://github.com/pytorch/pytorch
飞桨是以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体,2016 年正式开源,是全面开源开放、技术领先、功能完备的产业级深度学习平台。飞桨源于产业实践,始终致力于与产业深入融合。目前飞桨已广泛应用于工业、农业、服务业等,服务190 多万开发者,与合作伙伴一起帮助越来越多的行业完成AI 赋能。
官网:https://www.paddlepaddle.org.cn/
github项目地址:https://github.com/paddlepaddle/paddle
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体。
飞桨四大领先技术:
目前飞桨支持以下环境:
飞桨支持使用pip快速安装,执行下面命令完成CPU版本的快速安装:
pip install paddlepaddle-i https://pypi.tuna.tsinghua.edu.cn/simple
如需安装GPU版本的飞桨PaddlePaddle,或查询更详细的安装方法,请参考安装说明:
https://www.paddlepaddle.org.cn/documentation/docs/zh/install/index_cn.html
AI Studio是一站式深度学习开发平台,集开放数据、开源算法、免费算力三位一体,为开发者提供高效学习和开发环境、高价值高奖金竞赛项目,支撑高校老师轻松实现AI教学,并助力开发者加速落地AI业务场景。
官网地址:http://aistudio.baidu.com/
帮助文档:https://ai.baidu.com/docs#/AIStudio_Tutorial/top
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。
总结来说:人工智能就是使一部机器的反应方式像人一样进行感知、认知、决策、执行的人工程序或系统。
1962年,Frank Rosenblatt 提出感知器模型
1969年,M.Minsky 等人指出感知器不能解决高阶谓词问题和异或问题,将感知器拉下神坛
第二次高潮:
人工智能对自动制导车的失败,而利用神经网络有可能解决这个问题,导致了人工神经网络的第二次高潮。
1986年,Rumelhart等提出多层网络的学习算法—反向传播算法
第三次高潮:
2006年,深度学习被提出,开始使用更深的网络模型。
2012年,深度学习算法在语言和视觉识别上实现突破。
生物神经元:
生物神经元的启示:
tanh(双曲正切)函数:,导数表达式为:
前馈/全连接神经网络:每层每个节点均和上一层的所有节点相连
全连接/前馈神经网络是能解决很多问题,但是本身存在一个问题,对于某些数据而言,一是参数量巨大,二是不能充分应用数据的某些特性。
卷积神经网络就相当于一个黑盒,输入图像经过黑盒(卷积神经网络)输出一些提取的特征。
经典卷积神经网络有:LeNet、AlexNet、VGGNet、GoogLeNet、ResNet等。
经典RNN网络有:LSTM、GRU、Bi-RNN、Seq2Seq