栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

斋藤康毅:《深度学习:基于Python的理论与实现》

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

斋藤康毅:《深度学习:基于Python的理论与实现》

本书特点:

本书就是教你如何创建深度学习模型的一本书。并且,本书不使用任何现有的深度学习框架(Pytorch、Tensorflow),尽可能仅使用最基本的数学知识和Python库(Numpy、Matplotlib),从零讲解深度学习核心问题的数学原理,从零创建一个经典的深度学习网络。

文末有领取方式

总之你可以通过这本书对深度学习有一个初步认识,并且也能通过基本的Python库实现一些神经网络等等。

1.Python基础知识 1.1 Python安装

Python的安装已经在我们上期介绍完毕,可以查阅上期资料。

1.2 Python基本语法

1.2.1 type()函数

Python中的type()函数可以用来查看数据类型。

type(10)

  
type(2.718)

  
type("hello")

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

其中数字类型又分为:int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。

1.2.2 变量

可以使用x或y等字母定义变量(variable)。此外,可以使用变量进行计算,也可以对变量赋值。

x = 10                # 初始化
print(x)               # 输出x 
10

x = 100               # 赋值
print(x)
100

y = 3.14
x * y
314.0

type(x * y)

1.2.3 列表

列表是Python中内置有序、可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开。在Python中,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元组、字典、集合以及其他自定义类型的对象。

a = [1, 2, 3, 4, 5]      # 生成列表
print(a)          # 输出列表的内容
[1, 2, 3, 4, 5]

len(a)         # 获取列表的长度
5

索引:

序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。元素的访问是通过a[0]这样的方式进行的。[]中的数字称为索引(下标),索引从0开始(索引0对应第一个元素)。

a[0] # 访问第一个元素的值
1

a[4]
5

a[4] = 99      # 赋值
print(a)
[1, 2, 3, 4, 99]

切片:

Python的列表提供了切片(slicing)这一便捷的标记法。使用切片不仅可以访问某个值,还可以访问列表的子列表(部分列表)

 print(a)
[1, 2, 3, 4, 99]

a[0:2] # 获取索引为0到2(不包括2!)的元素
[1, 2]

a[1:] # 获取从索引为1的元素到最后一个元素
[2, 3, 4, 99]

a[:3] # 获取从第一个元素到索引为3(不包括3!)的元素
[1, 2, 3]

a[:-1] # 获取从第一个元素到最后一个元素的前一个元素之间的元素
[1, 2, 3, 4]

a[:-2] # 获取从第一个元素到最后一个元素的前二个元素之间的元素
[1, 2, 3]

1.2.4 字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

dict = {key1 : value1, key2 : value2, key3 : value3 }
me = {'height':180} # 生成字典
me['height'] # 访问元素
180

me['weight'] = 70 # 添加新元素
print(me)
{'height': 180, 'weight': 70}

1.2.5 布尔型

Python中有bool型。bool型取True或False中的一个值。针对bool型的运算符包括and、or和not(针对数值的运算符有+、-、*、/等,根据不同的数据类型使用不同的运算符)。

hungry = True       # 饿了
sleepy = False       # 困了


type(hungry)


not hungry
False

hungry and sleepy       # 饿并且困
False

hungry or sleepy        # 饿或者困
True

1.2.6 if语句

根据不同的条件选择不同的处理分支时可以使用if/else语句。

 hungry = True
 if hungry:      #如果hungry为真,就执行下面的语句
						print("I'm hungry")           

I'm hungry

hungry = False
if hungry:
... print("I'm hungry")            # 使用空白字符进行缩进
else:             #如果hungry不为真,则执行下面语句
... print("I'm not hungry")
... print("I'm sleepy")


I'm not hungry
I'm sleepy

注:Python使用空白字符表示缩进。一般而言,每缩进一次,使用4个空白字符。

1.2.7 for语句

进行循环处理时可以使用for语句。

>>> for i in [1, 2, 3]:
... print(i)
...
1
2
3

这是输出列表[1, 2, 3]中的元素的例子。使用for ...in ...:语句结构,可以按顺序访问列表等数据集合中的各个元素。

1.2.8 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

如何浅显理解上面函数的相关定义呢?举个例子,苹果手机的生产是由一个个加工厂组装而来的,比如屏幕的生产,理解成屏幕函数;电池的生产,理解成电池函数等等。最后由苹果公司发起调用这些函数,函数们就会执行它们内部的函数语句(做自己该做的的事),这样就提高了生产效率,以及规范性。

下面就是一个简单的打招呼函数

def hello():
... print("Hello World!")

hello()
Hello World!

此外,函数也可以取参数。

def hello(object):
... print("Hello " + object + "!")
...
hello("cat")
Hello cat!

1.2.9 类

前面我们了解了int和str等数据类型(通过type()函数可以查看对象的类型)。这些数据类型是“内置”的数据类型,是Python中一开始就有的数据类型。现在,我们来定义新的类。如果用户自己定义类的话,就可以自己创建数据类型。此外,也可以定义原创的方法(类的函数)和属性。

当然为了更好理解,你可以从字面意思粗略认为类是把相似特征的事物抽象成一个类。比如说,圆是具有圆周率(pi)和半径(r)两个相似特征的属性。根据相似特征抽象出圆类,每个圆的半径可以不同,那么半径可以作为圆的实例属性;而每个圆的圆周率pi是相同的,那么圆周率pi就可以作为类属性,这样就定义出了一个圆类。

实例属性每个实例都各自拥有,相互独立;而类属性有且只有一份,是共有的属性。

Python中使用class关键字来定义类,类要遵循下述格式(模板)。

class 类名:
 			def __init__(self, 参数, …): # 构造函数
 						...
 			def 方法名1(self, 参数, …): # 方法1
 						...
 			def 方法名2(self, 参数, …): # 方法2
 						...

这里有一个特殊的__init__方法,这是进行初始化的方法,也称为构造函数(constructor),只在生成类的实例时被调用一次。此外,在方法的第一个参数中明确地写入表示自身(自身的实例)的self是Python的一个特点。

下面我们通过一个简单的例子来创建一个类。

class Man:
 				def __init__(self, name):
 							self.name = name
							 print("Initialized!")
			 def hello(self):
 							print("Hello " + self.name + "!")
 			def goodbye(self):
						 print("Good-bye " + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()

# 运行结果
Initialized!
Hello David!
Good-bye David!

这里我们定义了一个新类Man。上面的例子中,类Man生成了实例(对象)m。

类Man的构造函数(初始化方法)会接收参数name,然后用这个参数初始化实例变量self.name。实例变量是存储在各个实例中的变量。Python中可以像self.name这样,通过在self后面添加属性名来生成或访问实例变量。

1.5 小结

本章重点介绍了实现深度学习(神经网络)所需的编程知识,以为学习深度学习做好准备。从下一章开始,我们将通过使用Python实际运行代码,逐步了解深度学习。

本章只介绍了关于Python的最低限度的知识,想进一步了解Python的读者,可以参考下面这些图书。

关于Python推荐《Python语言及其应用》 一书。这是一本详细介绍从Python编程的基础到应用的实践性的入门书。


电子版已经整理打包好了 希望可以帮助到大家如果你想获取这本书的电子版

可以找我下图拿

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号