深度学习实践
深度学习离不开编程
- 深度学习离不开数学分析(高等数学)、线性代数、概率论等知识,更离不开以编程为核心的动手实践。
Python编程语言
- 无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架都提供Python接口,Python被用于数据预处理、定义网络模型、执行训练过程、数据可视化等
- 熟悉Python的基础语法,并掌握NumPy,Pandas及其他基础工具模块的使用对深度学习实践是非常重要的!
AI Studio使用更多使用,可参考官方使用文档:https://ai.baidu.com/ai-doc/AISTUDIO/Tk39ty6ho
Python进阶语法
Python数据结构
数字(Number)
- Python Number数据类型用于存储数值,包括整型、长整型、浮点型、复数。
- Python中数学运算常用的函数基本都在math模块
import math
print(math.ceil(4.1)) #返回数字的上入整数 5
print(math.floor(4.9))#返回数字的下舍整数 4
print(math.fabs(-10)) #返回数字的绝对值 10.0
print(math.sqrt(9)) #返回数字的平方根 3.0
print(math.exp(1)) #返回e的x次幂 2.718281828459045
- Python中随机数
#随机生成一个[0,1)范围内的实数
import randomran = random.random()
print(ran)#随机生成一个[1,20)范围内的整数
ran1 = random.randint(1,20)
print(ran1)#当使用random.seed(x)设定好种子之后,random()生成的随机数将会是同一个。
print("-------设置种子seed-------")
random.seed(10)
print("Random number with seed 10 :",random.random())
#生成同一个随机数
random.seed(10)
print("Random number with seed 10 :",random.random())
字符串(String)
- 单引号、双引号、双引号
#Python中的字符串可以使用单引号、双引号和三引号(三个单引号或三个双引号)括起来,使用反斜杠\转义特殊字符
print('Hello')
print("Hello")
print('''I'm going to the movies ''')
html = '''......'''
print(html)
- 字符串连接
#使用+运算符
str1 = "Hello"
str2 = "World!"
print(str1+'\t'+str2)#使用join运算符
new_str = '-'.join('Hello')
print(new_str)
列表(List)
- 声明一个列表,并使用下标访问元素
- 访问最后一个元素
- 访问第一个元素
- 列表查询
- 列表添加
- 列表修改
- 列表删除
- 列表切片
- 列表排序
元组(Tuple)
- 与列表类似,区别是元组中的内容不可修改
- 列表转元组
#·元组不能修改,所以不存在往元组里加入元素
import random
random_list = []
for i in range(10):ran = random.randint(1,20)random_list.append(ran)
print(random_list)random_tuple = tuple(random_list)
print(random_tuple)#·元组截取
print(random_tuple)
print(random_tuple[0])
print(random_tuple[-1])
print(random_tuple[1:3])
print(random_tuple[::-1])#·元组的一些函数
print(max(random_tuple))
print(min(random_tuple))
print(sum(random_tuple))
print(len(random_tuple))
字典(Dict)
- 字典相关函数
- 字典删除
类
定义一个类Animals:
(1)init()定义构造函数,与其他面向对象语言不同的是,Python语言中,会明确地把代表自身实例的self作为第一参数传入。
(2)创建一个实例化对象cat,init()方法接收参数
(3)使用点号.,来访问对象的属性
JSON序列化与反序列化
- JSON序列化:json.dumps用于将Python对象编码成JSON字符
- JSON反序列化:json.loads用于解码JSON数据。该函数返回Python字段的数据类型
错误原因:因为
json.loads
函数期望的输入是一个 JSON 格式的字符串,而不是一个列表对象。要解决这个错误,需要将 jsonData
转换成一个 JSON 格式的字符串,然后再使用 json.loads
进行解析。
import json# 将列表 jsonData 转换为 JSON 格式的字符串
jsonData = [{"a":1,"b":2,"c":3,"d":4,"e":5}]
json_str = json.dumps(jsonData)# 使用 json.loads 解析 JSON 字符串
text = json.loads(json_str)# 打印解析后的结果
print(text)
首先使用 json.dumps
将 jsonData
转换为 JSON 字符串,然后再使用 json.loads
对其进行解析,就不会再出现 TypeError
错误了。
Python异常处理
- try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理
#·finally中的内容,退出try的总会执行
try:f = open("/home/aistudio/data/testfile02.txt","w")f.write("这是一个测试文件,用于测试异常!!")
finally:print('关闭文件')f.close()
常用Linux命令
Linux文件目录管理
- ls:列出目录
- cd:切换目录
- cp:复制文件或目录
- mv:移动文件与目录,或修改文件与目录的名称
- rm:移除文件或目录
- gzip命令:linux压缩文件中最常见的后缀名即为.gz,gzip是用来压缩和解压.gz文件的命令
- tar命令:哟昂莱打包或者解包后缀名为.tar。配合参数可同时实现打包和压缩
- zip和unzip命令:zip命令和unzip命令用在在Linux上处理.zip的压缩文件。
Linux文件编辑