pytorch torch.full_like函数介绍

torch.full_like 是 PyTorch 中用于创建一个具有特定值的新张量,其形状和数据类型与给定张量相同。

函数定义

复制代码
torch.full_like(input, fill_value, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format)

参数说明

  1. input (Tensor):

    • 用来提供形状和其他属性(如设备、数据类型等)的参考张量。
  2. fill_value (float 或 int):

    • 用于填充新张量的值。
  3. dtype (torch.dtype, 可选):

    • 新张量的数据类型。如果未指定,则与 input 的数据类型相同。
  4. layout (torch.layout, 可选):

    • 新张量的内存布局。默认为 input 的布局。
  5. device (torch.device, 可选):

    • 新张量所在的设备。如果未指定,则与 input 的设备相同。
  6. requires_grad (bool, 可选, 默认值:False):

    • 如果为 True,新张量将需要梯度计算。
  7. memory_format (torch.memory_format, 可选):

    • 新张量的内存格式。默认为 torch.preserve_format,即与 input 相同的内存格式。

返回值

  • 返回一个新张量,其形状、设备、数据类型等与 input 相同,但所有元素均为 fill_value

示例

1. 基本用法
复制代码
import torch

# 创建一个参考张量
x = torch.tensor([[1, 2], [3, 4]])

# 创建一个与 x 形状相同的新张量,元素全为 5
result = torch.full_like(x, 5)
print(result)
# tensor([[5, 5],
#         [5, 5]])
2. 指定数据类型
复制代码
result = torch.full_like(x, 5.0, dtype=torch.float32)
print(result)
# tensor([[5.0, 5.0],
#         [5.0, 5.0]])
3. 指定设备
复制代码
result = torch.full_like(x, 3, device='cuda')
print(result)  # 张量在 GPU 上
4. 需要梯度
复制代码
result = torch.full_like(x, 2, requires_grad=True)
print(result.requires_grad)  # True

常见用途

  1. 快速初始化张量:在网络初始化、测试时创建具有固定值的张量。
  2. 占位符:生成形状与参考张量相同的占位张量。
  3. 兼容性计算:确保新张量与给定张量具有相同的数据类型和设备。

注意事项

  • torch.full 的区别torch.full 需要手动指定张量的形状,而 torch.full_like 自动使用参考张量的形状。

  • 支持广播fill_value 可以是标量。

  • 性能优化torch.full_like 会自动优化设备和数据类型,便于高效地创建张量。

相关推荐
deep_drink3 小时前
【经典论文精读(一)】Isomap:非线性降维的全局几何框架(Science 2000)
人工智能·算法·机器学习
羑悻的小杀马特3 小时前
零成本神器组合:用Docker+Uptime Kuma+cpolar打造永不掉线的远程监控系统!
运维·人工智能·docker·容器
不吃鱼的小时喵3 小时前
【Python】关于python多进程
python
龙山云仓3 小时前
No132:AI中国故事-对话老子——道法自然与AI设计:无为而治、柔弱胜刚强与复杂系统智慧
大数据·人工智能·机器学习
喵手3 小时前
Python爬虫零基础入门【第六章:增量、去重、断点续爬·第1节】增量采集:只抓新增/更新(新手也能做)!
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·增量、去重·增量采集
Data-Miner4 小时前
类似Pandas AI的几个数据分析处理智能体介绍
人工智能·数据分析·pandas
万粉变现经纪人4 小时前
如何解决 pip install pyodbc 报错 缺少 ‘cl.exe’ 或 ‘sql.h’(ODBC 头文件)问题
数据库·python·sql·网络协议·bug·ssl·pip
TonyLee0174 小时前
新型学习范式(机器学习)
人工智能·学习·机器学习
Deepoch4 小时前
Deepoc具身大模型居家机器人:重新定义家庭智能服务新标准
人工智能·机器人·具身模型·deepoc·居家机器人·居家好物·智能居家
ucancode4 小时前
AI --> Mermaid --> 图形可视化 (UI)
人工智能·ui·ai·mermaid