pytorch 入门1-tensor 广播 view reshape

  • tensor 的四则运算
  • broadcast
python 复制代码
import torch
import numpy as np
# 张量tensor  随机初始化
x = torch.rand(4,3)
print(x)
y =torch.randn(4,3)
print(y)
python 复制代码
# 初始化全零 张量
a = torch.zeros((4,4),dtype=torch.long)
print(a)
#初始化全一 张量
b = torch.ones(4,4)
print(b)
c = torch.tensor(np.ones((2,3),dtype='int32'))
print(c)

常见的构造Tensor的方法:

python 复制代码
# tensor 的基本操作
# 加法
print(a+b)
# add_ = replace in 操作
y = a.add_(3)
print(y)

out:

python 复制代码
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])
tensor([[3, 3, 3, 3],
        [3, 3, 3, 3],
        [3, 3, 3, 3],
        [3, 3, 3, 3]])
python 复制代码
#索引操作
x = torch.rand(3,4)
print(x)
# 第二列
print(x[:,1])
# 第二行
print(x[1,:])
python 复制代码
#维度变换 张量的维度变换常见的方法有torch.view()和torch.reshape()
x = torch.randn(4,3)
y = x.view(12)
z = x.view(-1,6)
print(x.size(),y.size(),z.size())
print(x)
print(z)
# 最后x tensor size 没有发生改变
#view()仅仅是改变了对这个张量的观察角度
print(x)
python 复制代码
#我们希望原始张量和变换后的张量互相不影响。
#为了使创建的张量和原始张量不共享内存,我们需要使用第二种方法torch.reshape(), 
#同样可以改变张量的形状,但是此函数并不能保证返回的是其拷贝值,所以官方不推荐使用
a = torch.randn(4,4)
b = a.reshape(2,8)
print(a)
print(b)
python 复制代码
#广播机制
#当对两个形状不同的 Tensor 按元素运算时,可能会触发广播(broadcasting)机制:先适当复制元素使这两个 Tensor 形状相同后再按元素运算。
x = torch.arange(1,4).view(1,3)
print(x)
y = torch.arange(1,5).view(4,1)
print(y)
print(x+y)
相关推荐
布吉岛的石头8 小时前
海外AI众包入门:英语要什么水平,钱怎么收回来
人工智能·副业·数据标注·众包·海外兼职
zhikouai8 小时前
一边撤掉3千元入门款,一边在别处悄悄卖
人工智能
Rocky Ding*8 小时前
Hi-DiT:一文读懂Hybrid Latent-Pixel Diffusion Transformer的本质与技术细节
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·hi-dit
程序员yu8 小时前
会编网络:别被入门教程骗了,Python实用能力不在语法本身
开发语言·python·学习·算法
勤劳X码农8 小时前
2026年学生配音软件怎么选?免费AI配音指南
人工智能
鬼手点金8 小时前
opencode组件详解-安装方式
人工智能·python·优化器·分析器·nanogpt
武子康8 小时前
Cosmos Curator 清洗视频时,哪些片段应该留下?
人工智能·llm·agent
AI浩8 小时前
Migician:揭示多模态大语言模型中自由形式多图定位的魔力
人工智能·语言模型·自然语言处理
三声三视8 小时前
周日晚九点半,两份 JD 喂进 tri-jobhunt:全中的那份和缺一项的,都拿了 70 分
人工智能·ai·skillhub·tri-skill·tri-jobhunt
硅谷秋水8 小时前
从语言模型到作用于世界的系统:智能体AI在数字、社交、虚拟及物理环境中的进展与局限
人工智能·机器学习·语言模型·自然语言处理