torch

1.squeeze()和unsqueeze()函数

unsqueeze(1)为增加一个维度当作第1维度(从0开始),可以这么理解,在它的上一个维度下,创建一个抽象的空间,该空间为第1维度,然后把它上一个维度下的所有东西,放到这个空间中

【学习笔记】pytorch中squeeze()和unsqueeze()函数介绍_Jaborie203的博客-优快云博客_squeeze

2.torch的cat

PyTorch的torch.cat_my-GRIT的博客-优快云博客_torch.cat

3.expand

expand传的参数为,各个维度期望被扩展的大小,-1为保持不变

Example::

    >>> x = torch.tensor([[1], [2], [3]])
    >>> x.size()
    torch.Size([3, 1])
    >>> x.expand(3, 4)
    tensor([[ 1,  1,  1,  1],
            [ 2,  2,  2,  2],
            [ 3,  3,  3,  3]])
    >>> x.expand(-1, 4)   # -1 means not changing the size of that dimension
    tensor([[ 1,  1,  1,  1],
            [ 2,  2,  2,  2],
            [ 3,  3,  3,  3]])
"""
return _te.Tensor(*(), **{})

4.torch.split

torch.split(要切分的张量, 每个块的大小, dim=1)

torch.split()_skycrygg的博客-优快云博客_torch.split

5.一文学会 Pytorch 中的 einsum - 知乎​​​​​​

6.torch.sum()的用法_笨笨的蛋的博客-优快云博客_.sum() 

sum(3)就是把第三个维度压缩,最后减少一个维度

7.torch.save()保存模型参数

torch.save(model.state_dict(), f'transformer_best.pth')

8. 加载模型

model.parameters()与model.state_dict() - 知乎

model.load_state_dict(torch.load(f'transformer_best.pth'))

打印检查点的权重

checkpoint = load_fsspec(restore_path, map_location="cpu")
print("打印检查点的模型")
mdd = checkpoint["model"]
    for key in mdd:
         print(key)

打印模型权重

model_dict = model.state_dict()
print("打印权重形式")
    for key in model_dict:
        print(key) 

9.训练开始时的权重初始化是否影响载入预训练权重?

不影响

1.原模型随机初始化的权重

model_dict = model.state_dict()

print("打印原模型")

print(model_dict["emb_l.weight"])

tensor([[-0.8127,  0.4848,  0.7403, -0.0691]]) 因为随机初始化的,每次训练都不一样

2.打印检查点的模型

checkpointcheckpoint[model]已经是model_dict形式了)

checkpoint = load_fsspec(restore_path, map_location="cpu")

print("打印检查点的模型")

mdd = checkpoint["model"]

print(mdd["emb_l.weight"])

tensor([[-0.5100,  0.0040,  0.1548,  0.2193]])

3.载入后的原模型

print("打印载入后模型")

model_dict = self.model.state_dict()

print(model_dict["emb_l.weight"])

tensor([[-0.5100,  0.0040,  0.1548,  0.2193]], device='cuda:0')

4.nn.embedding

通俗讲解pytorch中nn.Embedding原理及使用 - 简书

5.查torch版本

 pip list | grep torch

6.下载torch

https://download.pytorch.org/whl/torch_stable.html

 7.离线安装wheel

下载wheel到一个

pip install whl文件名

8.CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1

和代码本身也有关

PyTorch大坑记录 - 知乎

如index < sizes[i] && "index out of bounds"` 数组越界

9.梯度反转

pytorch 实现Gradient Flipping 各种坑 - 知乎

10.域适应

域对抗(域适应)训练_Janie.Wei的博客-优快云博客_对抗域适应

https://www.cnblogs.com/trillionstar/p/16629776.html

引用和介绍了torch.Tensor()和torch.tensor()的区别。torch.Tensor()是一个类,而torch.tensor()是一个函数。torch.Tensor()可以接受多种类型的数据作为输入,包括list、tuple、array、scalar等。而torch.tensor()可以从数据输入中做拷贝,并根据原始数据类型生成相应的torch.LongTensor、torch.FloatTensor、torch.DoubleTensor。举例来说,当输入是[1, 2]时,torch.tensor()将生成一个torch.LongTensor,而当输入是[1., 2.]时,torch.tensor()将生成一个torch.FloatTensor。同时,可以使用torch.tensor()将numpy数组转换为相应类型的torch tensor。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [torch.tensor和torch.Tensor的区别](https://blog.csdn.net/qq_36930266/article/details/104602792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [torch.Tensor和torch.tensor的区别](https://blog.csdn.net/weixin_42018112/article/details/91383574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值