系列文章目录
(一)Python必备基础知识
(二)什么是感知机
(三)从感知机到神经网络
(四)神经网络的学习过程
(五)误差反向传播法
(六)深度学习相关技巧
(七)卷积神经网络(CNN)
(八)深度学习的未来
文章目录
前言
深度学习(英语:deep learning)是机器学习的分支,是一种以人工神经网络为架构,对资料进行表征学习的算法。本文基于作者对深度学习入门过程中的心得体会而写,仅供参考!推荐入门猛萌去看这本书《深度学习入门》,书的作者为斋藤康毅先生,由陆宇杰先生翻译。
(一)Python必备基础知识
1.什么是Python
Python,是一种广泛使用的解释型、高级和通用的编程语言。目前深度学习使用的主流语言是python,强烈推荐使用。绝大多数的深度学习第三方库都是以python为基础编写的,对python的支持较好。
2.Python的安装与版本选择
安装过程知乎、CSDN等平台都有详细过程,这里不再介绍。python郑重建议不要安装当前最新版,往往存在许多兼容问题,建议安装历史版本中的稳定版或长期支持版。比如3.8.3版或者3.9.13版。
3.Python基础知识
推荐没有基础的猛新看这本书《Python编程——从入门到实践》,作者为美国学者埃里克.马瑟斯,由袁国忠先生翻译。
3.1 Python编译环境
不管是什么操作系统,对于初学者PyCharm都是比较好的python开发环境,第三方库的安装也比较方便。入门之后,你会发现在网页端实时调试的jupyter也很好用。
3.2 算术计算
主要是利用Python进行加、减、乘和除的算术运算,直接在Python控制台输入计算表达式即可输出结果。
例如:
// 加法运算
>>> 1 + 2
3
3.3 数据类型
这里和C及C++差不多,也分为int型、float型、字符串型(str)和常量等等。
3.4 变量
一般指自定义变量,主要是注意命名规则。规则如下:
(1)变量名只能包含字母、数字和下划线,不能以数字开头。
(2)变量名不能包含空格,可以使用下划线来分隔单词。
(3)不要将Python中已有的关键字和函数名作为变量名,即不要使用Python保留用于特殊用途的单词。
(4)变量名应简洁易懂。
(5)慎用小写字母l和大写字母O,它们可能会被看成数字1和数字0。
3.5 列表
列表是由一系列按特定顺序排列的元素组成。代码举例如下:
#形式1
>>> Num = ['1', '2', '3']
>>> print(Num)
['1', '2', '3']
>>> print(Num[0])
1
#形式2
>>> Num = [1, 2, 3]
>>> print(Num)
[1, 2, 3]
>>> print(Num[0])
1
访问列表元素索引从0开始,如上述代码所示,访问第一个元素使用print(Num[0])而不是print(Num[1])。列表是可以修改的,包括添加、删减和改变元素,如果要创建不可修改的一系列元素可以使用元组。
3.6 元组
元组的创建和列表类似,只是将方括号改为圆括号即可。举例如下:
>>> Num = (1, 2, 3)
>>> print(Num)
(1, 2, 3)
>>> print(Num[0])
1
3.7 字典
在Python中,字典是一系列键值对。每个键都与一个值相关联,可以使用键来访问相关联的值。举例如下:
>>> alien_0 = {'color': 'green', 'points': 5}
>>> print(alien_0['color'])
green
>>> print(alien_0['points'])
5
color与points是键,green与5分别是它们对应的值。
3.8 for语句
for语句是循环语句的一种,多用于遍历。举例如下:
#输入
>>> magicians = ['alice', 'david', 'carolina']
>>> for magician in magicians:
...: print(magician)
...:
#输出
alice
david
carolina
3.9 if语句
if语句为条件判断语句的一种,举例如下:
#输入
>>> cars = ['audi', 'bmw', 'subaru', 'toyota']
>>> for car in cars:
...: if car == 'bmw':
...: print(car.upper())
...: else:
...: print(car.title())
#输出
Audi
BMW
Subaru
Toyota
这里的upper函数代表字母大写化,title函数代表首字母大写化。
3.10 函数
函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定任务,可调用该函数。举例如下:
>>> def greet_user():print("Hello!")
...:print("hello")
hello
3.11 新建脚本文件
上述所有代码均在控制台完成,但对于复杂代码,控制台效率过低,新建脚本是个不错的方法。在编译环境新建**.py文件**,编写python代码,运行.py文件即可。需要注意的是,编写脚本文件要添加用到的第三方库,一般如下:
from ### import ###
import ### as ###
3.12 类
类是用户在Python中自定义的数据类型,用关键字class来定义类。举例如下:
#根据 Dog 类创建的每个实例都将存储名字和年龄,我们赋予了每条小狗
#蹲下( sit())和打滚( roll_over())的能力:
class Dog:
"""一次模拟小狗的简单尝试。 """
def __init__(self, name, age):
"""初始化属性 name 和 age。 """
self.name = name
self.age = age
def sit(self):
"""模拟小狗收到命令时蹲下。 """
print(f"{self.name} is now sitting.")
def roll_over(self):
"""模拟小狗收到命令时打滚。 """
print(f"{self.name} rolled over!")
3.13 Numpy
深度学习中常用到的数组计算和矩阵计算要涉及到Numpy库的使用,举例如下:
>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y # 对应元素的加法
array([ 3., 6., 9.])
>>> x - y
array([ -1., -2., -3.])
>>> x * y # element-wise product
array([ 2., 8., 18.])
>>> x / y
array([ 0.5, 0.5, 0.5])
3.14 画图
画图一般使用matplotlib库,举例如下:
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y = np.sin(x)
# 绘制图形
plt.plot(x, y)
plt.show()
输出:
总结
以上就是今天要讲的深度学习入门知识第一章的内容,本文创作不易,都看到这里了点个赞再走吧,谢谢!