1. zip() 函数
作用:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
语法:zip([iterable, ...]) #其中,iterable是一个或多个迭代器
例子:
代码语言:javascript复制>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
2. for循环和range() 函数
在使用 for 循环时,最基本的应用就是进行数值循环。比如说,想要实现从 1 到 100 的累加,可以执行如下代码:
代码语言:javascript复制print("计算 1 2 ... 100 的结果为:") #保存累加结果的变量
result = 0 #逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):
result = iprint(result)
运行结果为:
计算 1 2 ... 100 的结果为: 5050
上面代码中,使用了 range() 函数,此函数是 Python 内置的函数,用于生成一系列连续的整数,多用于 for 循环中。
range() 函数的语法格式如下:
代码语言:javascript复制range(start,end,step)
此函数中各参数的含义如下:
- start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。
- end:用于指定计数的结束值(不包括此值),此参数不能省略。
- step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。
总之,在使用 range() 函数时,如果只有一个参数,则表示指定的是 end;
如果有两个参数,则表示指定的是 start 和 end。
出处:https://www.jb51.net/article/173875.htm
3. none是python一个特别的空值常量
4. pytorch中的DateLoader:本质是一个可迭代对象
详细:https://www.cnblogs.com/ranjiewen/p/10128046.html
5. 迭代器(Iterator):
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
详情:https://www.runoob.com/python3/python3-iterator-generator.html
6. 遇到了一个bug:
代码语言:javascript复制迭代DataLoader时出现
TypeError: Caught TypeError in DataLoader worker process 0.
TypeError: 'NoneType' obj。
地址:https://blog.csdn.net/qinglingLS/article/details/104411589
7. 从图像中提取特征:
image.shape[0], 图片垂直尺寸
image.shape[1], 图片水平尺寸
image.shape[2], 图片通道数
地址:https://baijiahao.baidu.com/s?id=1646437833421814260&wfr=spider&for=pc
8. __getitem__方法
9. load_state_dict()方法
在 Pytorch 中一种模型保存和加载的方式如下:
代码语言:javascript复制# save
torch.save(model.state_dict(), PATH)
# load
model = MyModel(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.eval()
10. torch之模型加载load_state_dict
地址:https://blog.csdn.net/yangwangnndd/article/details/100207686
11. pytorch 分布式训练 distributed parallel 笔记
地址:https://blog.csdn.net/m0_38008956/article/details/86559432
12. dict()函数
作用:用于创建一个字典。
语法:
代码语言:javascript复制class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
参数:
- **kwargs -- 关键字
- mapping -- 元素的容器。
- iterable -- 可迭代对象。
返回值:返回一个字典。
13. pytorch 状态字典:state_dict使用详解
pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系。
state_dict是在定义了model或optimizer之后pytorch自动生成的,可以直接调用.常用的保存state_dict的格式是".pt"或'.pth'的文件,即下面命令的 PATH="./***.pt"
load_state_dict 也是model或optimizer之后pytorch自动具备的函数,可以直接调用
仅保存学习到的参数,用以下命令
代码语言:javascript复制torch.save(model.state_dict(), PATH)
加载model.state_dict,用以下命令
代码语言:javascript复制model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.eval()
详细:https://www.jb51.net/article/178720.htm