杂记

1、pytorch的参数容器是一个class ‘collections.OrderedDict’
2、
expand
expand是指在维度为1的维上进行数据复制

image_data_ = image_data.expand(1,16,-1,-1)   #image_data is [1,1,64,64],image_data_ is [1,16,64,64]

3、
repeat

x = torch.ones(2,3,4)
x.repeat(4,5,3).shape            #8,15,12

4、

import tensorflow as tf

def get_local_maxima(in_tensor):
  max_pooled_in_tensor = tf.nn.pool(in_tensor, window_shape=(3, 3), pooling_type='MAX', padding='SAME')
  maxima = tf.where(tf.equal(in_tensor, max_pooled_in_tensor), in_tensor, tf.zeros_like(in_tensor))
  return maxima

5、

tf.nn.pool
这里写链接内容

6、

torch.index_select(input, dim, index, out=None)

该函数用来在输入的第dim维上选取index对应的元素
这里写图片描述

7、

torch.masked_select(input, mask, out=None)

选择出mask对应的那些位置的元素,组成一维向量返回
这里写图片描述

8、pytorch named_modules() & modules()

Returns an iterator over all modules in the network, yielding both the name of the module as well as the module itself. (返回一个迭代器会输出网络里面所有的子模块的名字和这个模块自身)
在这里插入图片描述
注意上面的例子,输出的时候不仅仅会把sequential的总体输出来,还会输出sequential里面的每一个子模块。重复的模块就输出一个。

同样的一个例子是,对于
在这里插入图片描述
对于nn.sequential用named_modules()来进行打印输出的是总的模块和每一个子模块。

对于普通的函数modules()来讲的话,他只适用于用来打印
在这里插入图片描述
modules 和 named_modules返回来的稍微有一点不同,对于modules来讲返回来的时候如果想打印成
的形式的话必须写成

for name, m in enumerate(self.deconv_layers.modules()):
或者
for  m in self.deconv_layers.modules():

但对于named_modules()来讲,不用加enumerate即可

for  name, m in self.deconv_layers.named_modules():

9、
在这里插入图片描述

如果strict=True的话,表示加载的模型和要被初始化的模型必须在参数上一模一样才能被初始化,而strict=False的话,则只需要部分参数和要被初始化的模型是一致的。

10、model.state_dict() && model.module.state_dict()

如果没有使用torch.nn.DataParallel(model).cuda()的话,使用model.state_dict()即可,这个时候是没有module模块的,但是如果使用torch.nn.DataParallel(model).cuda()的话,那么model.state_dict()就会保留module这一个属性,如下图所示
在这里插入图片描述
如果使用model.module.state_dict(),就会起到module这一个属性
在这里插入图片描述

11、
torch.zeros 和torch.zeros_like只是用法上面的区别,在实际的效果上没有什么太大的区别
在这里插入图片描述
12、
volatile关键字的使用
在0.4以前对变量用volatile的话可以用在推理的时候节省显存的使用,
在这里插入图片描述

但是在0.4之后这一关键字已经失效,只能使用with torch.no_grad()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值