pytorch 之 torch.squeeze() 和 torch.unsqueeze()用法

第一块:

squeeze(),主要是对数据的维度进行压缩,去掉元素数为1的那个维度,使用方式:a.squeeze(N) or torch.squeeze(a,N) ,去掉a的第N维度,以此来实现数据a的维度压缩;

unsqueeze()与squeeze()函数功能相反,其功能是对数据维度进行扩充,使用方式:a.unsqueeze(N) or torch.unsqueeze(a,N),在数据a的第N维度上增加一个维数为1的维度,以此实现对数据的扩充,方便后续模型训练喂入模型的数据的维度和模型接收数据的维度是匹配的。


第二块:

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") model.to(device) # 选择第0个cuda

model.to(device)

以上两行代码放在读取数据之前。

mytensor = my_tensor.to(device) #将所有最开始读取数据时的tensor变量copy一份到device所指定的GPU上,之后运算都在指定的GPU上进行。这些tensor多是最开始读取数据时的变量,后面其衍生出的新变量也会在已指定的GPU上运行计算。



第三块:

Tensor & Numpy 都是矩阵,区别在与Tensor可以在GPU上运行,Numpy只能在CPU上运行。(天呐,我现在才知道!)Tensor与Numpy互相转化很方便,类型也比较兼容,Tensor可以直接通过print显示数据类型,而Numpy不可以


第四块:

x.aadd(y) 实现x与y Tensor的相加,不改变x,返回一个新的Tensor

x.add_(y)  实现x与y Tensor的相加,会修改x的维数


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容