1_1torch基础知识

本文介绍了如何安装PyTorch及其CUDA版本,创建不同类型Tensor的方法,包括浮点型、整型和双精度型。还探讨了torch.Tensor()与torch.tensor()的区别以及Tensor间的类型转换,如CPU与GPU之间的转换,以及与Numpy数组的互换。此外,提到了在训练和测试模型时使用model.train()和model.eval()的差异,以及预训练模型在迁移学习中的应用。

1、torch安装

pytorch cuda版本下载地址:https://download.pytorch.org/whl/torch_stable.html

 其中先看官网安装torch需要的cuda版本,之后安装cuda版本,之后采用pip 下载对应的torch的gpu版本whl来进行安装。使用pip安装时如果是conda需要切换到对应的env下。

2、tensor创建

(1)创建不同类型的tensor

#torch 基础知识
import torch
#创建不同类型的tensor
print("创建不同类型的tensor")
a_float = torch.Tensor([1,2,3])
print("a_float=", a_float)
a_float2 = torch.FloatTensor([1,2,3]).zero_()#增加了zero_表示原地计算绝对值,返回原值,zero则计算一个新的tensor结果
print("a_float2=", a_float2)
a_int = torch.IntTensor([1,2,3])
print("a_int =", a_int)
a_double = torch.DoubleTensor(1,2)
print("a_double =", a_double)
print("后面还有ByteTensor(unsigned 8 bit integer),CharTensor(signed 8 bit integer), ShortTensor(16 bit integer), LongTensor(64 bit integer)")

=============================结果=======================================

创建不同类型的tensor
a_float= tensor([1., 2., 3.])
a_float2= tensor([0., 0., 0.])
a_int = tensor([1, 2, 3], dtype=torch.int32)
a_double = tensor([[4.4743e-316, 4.4757e-316]], dtype=torch.float64)
后面还有ByteTensor(unsigned 8 bit integer),CharTensor(signed 8 bit integer), ShortTensor(16 bit integer), LongTensor(64 bit integer)

(2)通过不同形式输入创建tensor

#通过不同输入创建tensor
print("通过不同输入创建tensor,size, *size, sequence, ndarray,tensor,storage")
a_size = torch.IntTensor(2,3)
print("a_size =", a_size)
a_size2 = torch.Tensor(*[1,2,3])
print("a_size2=",a_size2)
a_sequence = torch.Tensor([1,2,3])
print("a_sequence =", a_sequence)
======================================结果========================================
通过不同输入创建tensor,size, *size, sequence, ndarray,tensor,storage
a_size = tensor([[408112416,     32605,  90
### 关于Face Fusion Project Using PyTorch Implementation 对于面部融合项目或工具的PyTorch实现,通常涉及多个方面和技术组件。虽然提供的参考资料未直接提及`face_fusion_torch`的具体细节,但是可以基于已有的知识框架来构建一个类似的解决方案。 #### 创建开发环境 为了启动任何深度学习项目,包括面部融合,准备合适的开发环境至关重要。这涉及到安装必要的软件包和依赖项: - **安装Anaconda**:作为管理不同Python版本及其相应库的有效方式,Anaconda提供了极大的便利性。 - **创建并激活虚拟环境**: ```bash conda create -n face-fusion-env python=3.8 conda activate face-fusion-env ``` - **安装PyTorch及相关库**: ```bash conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge pip install torchtext datasets transformers facenet-pytorch opencv-python-headless ``` 上述命令不仅涵盖了基础的PyTorch设置,还额外加入了与人脸识别密切关联的`facenet-pytorch`以及计算机视觉处理所需的OpenCV[^1]。 #### 面部融合技术概述 面部融合是指将一个人的脸部特征无缝地转移到另一个人脸上的一种图像编辑技术。这种操作可以通过多种方法完成,其中一种流行的方法是利用卷积神经网络(CNNs),特别是那些专为面部识别设计的模型如Facenet。通过训练这些模型,可以从输入图片中提取出高维空间内的面部表示向量,进而用于后续的操作,比如相似度比较或是属性迁移等[^2]。 #### 实现步骤概览 尽管具体的源码实现会因需求而异,但一般而言,完整的面部融合过程可能遵循如下模式: - 加载预训练好的面部检测器和编码器; - 对两张待处理的照片分别执行人脸定位及裁剪; - 使用编码器获取各自的人脸嵌入(embedding); - 设计特定机制调整目标脸部某些区域的颜色分布、纹理特性等使其更接近源图样貌; - 将修改后的信息重新映射回原始尺寸,并最终合成一张新的照片展示效果。 值得注意的是,在实际部署过程中还需要考虑性能优化等问题,例如借助nn-Meter这样的工具来进行推理延迟预测,从而确保应用程序能够在各种边缘设备上高效运行[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值