2021-05-25

2021-05-27 14:40:51 浏览数 (1)

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)

此函数中各参数的含义如下:

  1. start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。
  2. end:用于指定计数的结束值(不包括此值),此参数不能省略。
  3. 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

0 人点赞