![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Pytorch操作
文章平均质量分 76
此专栏主要分析pytorch的基本操作和程序代码
Aaron_neil
这个作者很懒,什么都没留下…
展开
-
Pytorch 容器 - 5. Module中的参数转换/转移:cpu(), cuda(), float(), double(), half()
如果模型要在gpu上进行训练,需要再将参数放到优化器之前调用该函数进行设备转化。对于模型的cpu()函数,比如 model.cpu(),只是把。将模型中所有parameters和buffers进行类型转换。parameters 和 buffers。原创 2023-04-21 22:25:16 · 1152 阅读 · 0 评论 -
Pytorch 容器 - 4. Module中hook注册:register_forward_pre_hook(),register_forward_hook()
hook是一个可调用的对象,它预定义了函数声明(即函数参数,返回值,调用方式等)。当调用forward() / backward()时,module对应的输入输出都会传到hook上,并可以在hook中处理这些输入输出。因此hook可中进行一些如:可视化中间特征、冻结部分层的等操作。从输出的顺序可以看到先执行forward_pre_hook(),然后执行forward(),最后执行forward_hook()原创 2023-04-20 21:09:41 · 713 阅读 · 0 评论 -
Pytorch 容器 - 3. Module的参数添加:register_parameter(),register_buffer()
Module类内置了很多函数,其中本文主要介绍常用的属性设置函数,包括向module添加参数的register_parameter(),register_buffer()。原创 2023-04-18 11:05:52 · 580 阅读 · 0 评论 -
Pytorch 容器 - 2. Module的属性访问 modules(), children(), parameters(), buffers()等
Module类内置了很多函数,其中本文主要介绍常用的属性访问函数,包括: modules(), named_modules(), buffers(), named_buffers(), children(), named_children(), parameters(), named_parameters()。原创 2023-04-16 22:08:51 · 644 阅读 · 0 评论 -
Pytorch 容器 - 1. Module类介绍
(1) 属性访问:modules(), named_modules(), buffers(), named_buffers(), children(), named_children(), parameters(), named_parameters() 等。(2) 属性设置:register_parameter(),register_buffer(),register_forward_hook(),register_forward_pre_hook() 等。对于这些内置函数的详细介绍,在。原创 2023-04-16 17:03:27 · 1390 阅读 · 3 评论 -
Pytorch基础 - 8. scatter() / scatter_() 函数
scatter() 或 scatter_() 常用来返回根据index映射关系映射后的新的tensor。其中,scatter() 不会直接修改原来的 Tensor,而 scatter_() 直接在原tensor上修改。dim:沿着哪个维度进行索引index:索引值src:数据源,可以是张量,也可以是标量简言之 scatter() 是通过 src 来修改另一个张量,修改的元素值和位置由 dim 和 index 决定。原创 2023-04-15 19:40:57 · 2514 阅读 · 0 评论 -
Pytorch基础 - 7. torch.transpose() 和 torch.permute()
按照上面数组的方式进行理解,x的原维度表示数组 array = [3, 4, 5, 8],转置后的维度 = [array[1], array[0], array[3], array[2]] = [4, 3, 8, 5]就是把原来的维度比作一个数组 list=[3, 4],permute中的数表示数组对应的index,则转置后的x为 [list[1], list[0]] = [4, 3]示例:将shape为[3, 4]的张量,通过transpose()转换成维度为[4, 3]的张量。示例1:进行二维转置。原创 2023-04-14 23:04:53 · 2521 阅读 · 0 评论 -
Pytorch基础 - 6. torch.reshape() 和 torch.view()
当tensor是连续的,torch.reshape() 和 torch.view()这两个函数的处理过程也是相同的,即两者均不会开辟新的内存空间,也不会产生数据的副本,只是改变了tensor的头信息区,如stride, 并没有修改这个tensor的存储区 Storage。当处理的tensor是非连续性的(contiguous)view():在调用view()函数之前需要先调用 contiguous()方法,即x.contiguous().view()。原创 2023-04-14 00:24:49 · 2254 阅读 · 1 评论 -
Pytorch基础 - 5. torch.cat() 和 torch.stack()
torch.cat() 和 torch.stack()常用来进行张量的拼接,在神经网络里经常用到。torch.cat会在dim的维度上进行合并,不会扩展出新的维度。torch.stack则会在dim的维度上拓展出一个新的维度,然后进行拼接,该维度的大小为tensors的个数原创 2023-04-13 16:04:20 · 774 阅读 · 0 评论 -
Pytorch基础 - 4. torch.expand() 和 torch.repeat()
在PyTorch中有两个函数可以用来扩展某一维度的张量,即 torch.expand() 和 torch.repeat()原创 2023-04-11 22:55:01 · 1651 阅读 · 0 评论 -
Pytorch基础 - 3. torch.utils.tensorboard
Tensorboard是Tensorflow的可视化工具,常用来可视化网络的损失函数,网络结构,图像等。后来将Tensorboard集成到了PyTorch中,常使用torch.utils.tensorboard来进行导入。原创 2023-04-11 21:29:06 · 1251 阅读 · 0 评论 -
Pytorch基础 - 2. torch.linalg.norm() 和 torch.linalg.vector_norm() 和 torch.linalg.matrix_norm()
最近在写程序的时候,用到了L2范数,也因此了解到了这几个函数torch.norm(),torch.linalg.norm(),torch.linalg.matrix_norm(),torch.linalg.vector_norm()。原创 2022-12-25 17:42:38 · 6498 阅读 · 0 评论 -
Pytorch基础 - 1. torch.squeeze() 和 unsqueeze()
tensor升维和降维是神经网络的基本操作,比如不同维feature融合等都需要改操作。常用的函数有torch.unsqueeze() 和 torch.unsqueeze()操作。原创 2022-12-24 11:23:50 · 1659 阅读 · 4 评论 -
Pytorch基础 - 0. Tensor数据类型与存储结构
pytorch中最常见的tensor张量,包括数据类型,创建类型,类型转换,以及存储方式和数据结构。原创 2023-04-13 11:58:59 · 2119 阅读 · 0 评论