09.PyTorch_创建全0_1_指定值张量&&创建线性和随机张量

一、创建0、1、指定值张量

1、torch.ones 和 torch.ones_like 创建全1张量

2、torch.zeros 和 torch.zeros_like 创建全0张量

3、torch.full 和 torch.full_like 创建全为指定值张量

python 复制代码
"""
案例:
    演示如何创建全0, 全1, 指定值的张量.

涉及到的函数如下:
    torch.ones 和 torch.ones_like 创建全1张量
    torch.zeros 和 torch.zeros_like 创建全0张量
    torch.full 和 torch.full_like 创建全为指定值张量

需要你掌握的函数:
    zeros(), full()
"""

# 导包
import torch


# 场景1: torch.ones 和 torch.ones_like 创建全1张量
t1 = torch.ones(2, 3)   # 创建2行3列全1张量
print(f't1: {t1}, type: {type(t1)}')
print('-' * 30)

# t2: 3行2列
t2 = torch.tensor([[1, 2], [3, 4], [5, 6]])
print(f't2: {t2}, type: {type(t2)}')
print('-' * 30)

# t3 -> 基于t2的形状, 创建全1张量.
t3 = torch.ones_like(t2)
print(f't3: {t3}, type: {type(t3)}')    # 3行2列 -> 全1矩阵
print('*' * 30)

# 场景2: torch.zeros 和 torch.zeros_like 创建全0张量
t1 = torch.zeros(2, 3)   # 创建2行3列全0张量
print(f't1: {t1}, type: {type(t1)}')
print('-' * 30)

# t2: 3行2列
t2 = torch.tensor([[1, 2], [3, 4], [5, 6]])
print(f't2: {t2}, type: {type(t2)}')
print('-' * 30)

# t3 -> 基于t2的形状, 创建全0张量.
t3 = torch.zeros_like(t2)
print(f't3: {t3}, type: {type(t3)}')    # 3行2列 -> 全0矩阵
print('*' * 30)


# 场景3: torch.full 和 torch.full_like 创建全为指定值张量
t1 = torch.full(size=(2, 3), fill_value=255)   # 创建2行3列全255张量
print(f't1: {t1}, type: {type(t1)}')
print('-' * 30)

# t2: 3行2列
t2 = torch.tensor([[1, 2], [3, 4], [5, 6]])
print(f't2: {t2}, type: {type(t2)}')
print('-' * 30)

# t3 -> 基于t2的形状, 创建全255张量.
t3 = torch.full_like(t2, 255)
print(f't3: {t3}, type: {type(t3)}')    # 3行2列 -> 全0矩阵

二、创建线性和随机张量

1、torch.arange() 和 torch.linspace() 创建线性张量

2、torch.random.initial_seed() 和 torch.random.manual_seed() 随机种子设置

3、torch.rand/randn() 创建随机浮点类型张量

4、torch.randint(low, high, size=()) 创建随机整数类型张量

python 复制代码
"""
案例:
    演示PyTorch中如何创建 线性 和 随机张量.

涉及到的函数:
    torch.arange() 和 torch.linspace() 创建线性张量
    torch.random.initial_seed() 和 torch.random.manual_seed() 随机种子设置
    torch.rand/randn() 创建随机浮点类型张量
    torch.randint(low, high, size=()) 创建随机整数类型张量

要掌握的函数:
    arange(), linspace(), manual_seed(), randint()
"""

# 导包
import torch

# 1. 定义函数, 演示: 创建线性张量.
def dm01():
    # 场景1: 创建指定范围的 线性张量.
    # 参1: 起始值, 参2: 结束值, 参3: 步长.
    t1 = torch.arange(0, 10, 2)     # 0, 2, 4, 6, 8
    print(f't1: {t1}, type: {type(t1)}')
    print('-' * 30)

    # 场景2: 创建指定范围的 线性张量 -> 等差数列.
    # 参1: 起始值, 参2: 结束值, 参3: 元素的个数
    t2 = torch.linspace(1, 10, 4)
    print(f't2: {t2}, type: {type(t2)}')


# 2. 定义函数, 演示: 创建随机张量.
def dm02():
    # step1: 设置随机种子.
    # torch.initial_seed()    # 默认采用当前系统的时间戳作为随机种子.
    torch.manual_seed(3)      # 设置随机种子.

    # step2: 创建随机张量.
    # 场景1: 均匀分布的(0, 1) 随机张量
    t1 = torch.rand(size=(2, 3))
    print(f't1: {t1}, type: {type(t1)}')
    print('-' * 30)

    # 场景2: 符合正态分布的随机张量.
    t2 = torch.randn(size=(2, 3))
    print(f't2: {t2}, type: {type(t2)}')
    print('-' * 30)

    # 场景3: 创建随机整数张量.
    t3 = torch.randint(low=1, high=10, size=(3, 5))
    print(f't3: {t3}, type: {type(t3)}')

# 3. 测试函数.
if __name__ == '__main__':
    dm01()
    dm02()
相关推荐
__log2 小时前
弱网环境下的“生命线“:从AI流式响应到大文件上传的稳定性
开发语言·人工智能·php
糖果店的幽灵2 小时前
【langgraph 从入门到精通graphApi 篇】LangGraphAPI 方式调用 - 初识与核心概念
数据库·人工智能·langgraph
念雨思2 小时前
HarmonyOS AI 应用开发实战:短视频选题灵感 —— AI 驱动的内容创作引擎
人工智能·学习·华为·harmonyos·鸿蒙
FourAu2 小时前
2026 前端突围指南:从 ESR 边缘渲染到封装 Web AI SDK,聊聊 AI 时代的职业进化
前端·人工智能
前端开发江鸟2 小时前
模型返回了 JSON,为什么还不能调用工具?Runtime 的结构化输出校验链路
人工智能
Urbano2 小时前
卫衣生产工艺科普与智能自动化设备应用解析
大数据·运维·人工智能
kp000003 小时前
Prompt注入攻击(Prompt Injection Attack)
人工智能·安全·网络安全·信息安全·ai安全
这张生成的图像能检测吗3 小时前
(论文速度)RE-NET递归事件网络:时态知识图上的自回归结构推理
人工智能·图神经网络·时序模型
larance3 小时前
机器学习特征预处理之删移除无关特征
人工智能·机器学习·数据挖掘
QC777LX3 小时前
运营岗位怎么借AI提升内容、活动和复盘效率?
大数据·人工智能