AI杂七杂八系列(1)——工程篇

1. 远程服务器无法登录问题

2. 内存溢出解决方法

3. Padding

4. try...except...处理异常报错

5. view、expand、repeat、transpose、permute和squeeze、unsqueeze的区别


1. 远程服务器无法登录问题

权限可能是root权限,修改权限

用户权限: sudo chown -R user1 /path/to/directory

群组权限: sudo chgrp -R group1 /path/to/directory


2. 内存溢出解决方法

1)调小batch_size;

2)换一个显存更大/性能更好的GPU——e.g. V100 24G->A100 40G/ A100 80G ;

3)多卡并行 。


3. Padding

(1)用于卷积网络中,对输入边缘进行填充;

(2)避免特征图边缘信息损失;

(3)控制输出特征图大小和形状。


4. try...except...处理异常报错

try:
	pass
except exception as e:
	print(e)
	pass

5. view、expand、repeat、transpose、permute和squeeze、unsqueeze的区别

(1) view

import torch

x = torch.randn(2, 3)
print(x.view(3, 2)) ### (2, 3) --> (3, 2)

(2) expand

x = torch.tensor([[1], [2], [3]])
print(x.expand(3, 4)) ### (3, 1) --> (3, 4)
print(x.expand(-1, 4)) ### (3, 1) --> (3, 4)
print(x.expand(4, 4)) ### 报错!!!

(3) repeat

x = torch.tensor([1, 2, 3])
print(x.repeat(3, 1)) ### (1, 3)--> (3, 3)

(4) transpose: 交换张量的两个指定维度

x = torch.randn(2, 3)
print(x.transpose(0, 1)) ### (2, 3) -->(3, 2)

(5) permute: 根据指定顺序重新排布张量的所有维度

x = torch.randn(2, 3, 4)
print(x.permute(2, 0, 1)) ### (2, 3, 4) --> (4, 2, 3)

(6) squeeze: 去除张量中大小为 1 的维度

x = torch.randn(1, 2, 3, 1)
print(x.squeeze()) ### (1, 2, 3, 1) --> (2, 3)

(7) unsqueeze: 增加一个大小为 1 的维度

x = torch.randn(2, 3)
print(x.unsqueeze(0)) ### (2, 3) --> (1, 2, 3)

### 总结

- **view**: 改变张量形状,但不改变存储;

- **expand**: 沿指定维度重复数据,但不复制内容,不改变存储;

- **repeat**: 实际复制数据以沿指定维度重复,改变存储;

- **transpose**: 交换两个指定维度;

- **permute**: 根据指定顺序重新排列所有维度;

- **squeeze**: 去除大小为 1 的维度;

- **unsqueeze**: 增加一个大小为 1 的维度。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值