Loading

『笔记』PyTorch

『笔记』PyTorch

阅读官网文档

https://www.notion.so/PyTorch-a74018ebe2e1473e9a5a690e7c73a19b

深度学习相关知识

神经网络中 warmup 策略为什么有效;有什么理论解释么?

pytorch 多机多卡卡住问题汇总

为什么 A40 GPU Pytorch 无法并行训练? - Mediocrity的回答 - 知乎

pytorch如何使用多块gpu?

  • 因为pytorch定义的网络模型参数默认放在gpu 0上,所以dataparallel实质是可以看做把训练参数从gpu 0拷贝到其他的gpu同时训练,此时在dataloader加载数据的时候,batch_size是需要设置成原来大小的n倍,n即gpu的数量。

Pytorch多机多卡分布式训练

pytorch 分布式计算 你们都遇到过哪些 坑/bug?

PyTorch进程通信

PyTorch 源码解读之 cpp_extension:揭秘 C++/CUDA 算子实现和调用全流程

深度学习模型部署(C++)

关于一些通用函数

gather

contiguous

To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach()

PyTorch:view() 与 reshape() 区别详解

关于一些通用类

理解nn.Parameter

看官方文档就行了:

image

其他:

  • Pytorch模型中的parameter与buffer

  • Q:在pytorch里面,为什么torch.nn.Parameter放在字典里就不会更新了,必须单独定义?
    A: 使用ParameterDict即可。本质:在PyTorch的模型中定义变量时,会触发nn.Module 的 __setattr__方法,如果定义变量的类型是Parameter、Module、Buffer等特殊类型,那么PyTorch会对这个变量进行注册,经过注册的变量才算是模型的一部分,后续训练的过程中才会更新梯度。而当你用self.params = [param1, param2]这种写法时,setattr 方法发现入参是一个list对象,因此不会去注册。而之所以ParameterDict能生效,是因为ParameterDict是继承的nn.Module类,因此__setattr__能够正确注册。

posted @ 2022-07-02 06:37  traviscui  阅读(14)  评论(0)    收藏  举报