当前位置: 首页 > wzjs >正文

新乡专业做网站网络营销的工具和方法

新乡专业做网站,网络营销的工具和方法,烟台网站排名优化费用,湘潭注册公司😉如果您想用jupyter notebook跑我的笔记,可以在下面获取ipynb版本 😊麻烦给个免费的star😘 ❤️主包也更建议这种形式,上面的笔记也更加全面,每一步都有直观的输出 文章目录📚 PyTorch张量操作…

😉如果您想用jupyter notebook跑我的笔记,可以在下面获取ipynb版本
😊麻烦给个免费的star😘
❤️主包也更建议这种形式,上面的笔记也更加全面,每一步都有直观的输出

文章目录

  • 📚 PyTorch张量操作与自动微分全面指南
    • 🛠 1. 准备工作
      • 1.1 导入PyTorch并检查环境
      • 1.2 设置计算设备
    • 📦 1.1 张量初始化
      • 1.1.1 从Python数据类型创建
      • 1.1.2 数据类型处理
      • 1.1.3 从NumPy数组创建
      • 1.1.4 特殊张量创建
      • 1.1.5 张量属性查看
      • 1.1.6 张量设备转移
    • ➗ 1.2 张量运算
      • 1.2.1 基本运算
      • 1.2.2 张量转换
      • 1.2.3 形状操作
    • 🔁 1.3 张量自动微分
      • 1.3.1 梯度计算核心概念
      • 1.3.2 梯度计算实战
      • 1.3.3 梯度控制技巧
    • 💎 核心要点总结

📚 PyTorch张量操作与自动微分全面指南

PyTorch作为深度学习领域的主流框架,掌握其核心数据结构张量(Tensor)的操作至关重要。本文将全面解析PyTorch张量的创建、运算和自动微分机制,助你快速上手PyTorch开发!🚀

🛠 1. 准备工作

1.1 导入PyTorch并检查环境

# 导入torch库
import torch# 查看torch版本
print(torch.__version__)  # 输出: 2.6.0+cu124# 检查CUDA是否可用
torch.cuda.is_available()  # 输出: True

1.2 设置计算设备

device = "cuda" if torch.cuda.is_available() else "cpu"
print(device)  # 输出: cuda

📦 1.1 张量初始化

1.1.1 从Python数据类型创建

data = [[1,2],[3,4]]
x = torch.tensor(data)
print(x)
# 输出: 
# tensor([[1, 2],
#         [3, 4]])

1.1.2 数据类型处理

# 查看数据类型
print(x.dtype)  # 输出: torch.int64# 指定数据类型创建
x1 = torch.FloatTensor([[1,2],[3,4]])  # 等价于 torch.tensor(..., dtype=torch.float32)
x2 = torch.LongTensor([[1,2],[3,4]])# 强制类型转换
x1 = x1.type(torch.long)  # 转换为int64
x1 = x1.float()           # 转换为float32

💡 关键提示torch.float32torch.int64是最重要的数据类型!模型输入通常是float32,分类标签通常是int64

1.1.3 从NumPy数组创建

import numpy as np
data = np.array([[1,2],[4,3]])
x3 = torch.from_numpy(data)
print(x3)
# 输出:
# tensor([[1, 2],
#         [4, 3]])

1.1.4 特殊张量创建

# 创建随机张量
rand_tensor = torch.rand(2,3)    # 0~1均匀分布
randn_tensor = torch.randn(2,3)  # 标准正态分布# 创建全1/全0张量
ones_tensor = torch.ones(2,3)
zeros_tensor = torch.zeros(2,3)# 继承形状创建
y1 = torch.rand_like(x.float())

1.1.5 张量属性查看

t = x
print(t.shape)      # 形状: torch.Size([2, 2])
print(t.size())     # 大小: torch.Size([2, 2])
print(t.dtype)      # 数据类型: torch.int64
print(t.device)     # 存储设备: cpu

1.1.6 张量设备转移

x_gpu = x.to(device)  # 转移到GPU
print(x_gpu.device)   # 输出: cuda:0

➗ 1.2 张量运算

1.2.1 基本运算

# 就地加法 (会改变原张量)
t1 = torch.randn(2,3)
t2 = torch.ones(2,3)
t2.add_(t1)# 矩阵乘法
result1 = t1 @ t2.T
result2 = t1.matmul(t2.T)

1.2.2 张量转换

# 单元素张量转标量
t3 = t1.sum()
scalar = t3.item()  # 输出: 2.1050655841827393# 张量转NumPy数组
numpy_array = t1.numpy()

1.2.3 形状操作

t = torch.randn(4,6)# 重塑形状
t1 = t.view(3,8)     # 显式指定形状
t2 = t.view(-1,1)    # 自动推断维度
t3 = t.view(1,4,6)   # 增加维度# 维度压缩与扩展
t4 = torch.ones(1,4,6)
t5 = torch.squeeze(t4)    # 移除大小为1的维度
t6 = torch.unsqueeze(t5,0)  # 在指定位置添加维度

🔁 1.3 张量自动微分

1.3.1 梯度计算核心概念

PyTorch的自动微分系统基于以下三个关键属性:

  • requires_grad:是否跟踪梯度(默认为False)
  • grad:存储计算得到的梯度
  • grad_fn:指向生成此张量的运算方法

1.3.2 梯度计算实战

# 创建需要跟踪梯度的张量
t = torch.ones(2,2, requires_grad=True)
print(t.requires_grad)  # 输出: True# 构建计算图
y = t + 5
x = y * 2
out = x.mean()# 反向传播计算梯度
out.backward()# 查看梯度
print(t.grad)
# 输出:
# tensor([[0.5000, 0.5000],
#         [0.5000, 0.5000]])

1.3.3 梯度控制技巧

# 临时禁用梯度跟踪
with torch.no_grad():print((t + 2).requires_grad)  # 输出: False# 获取不跟踪梯度的张量副本
detached_t = t.detach()
print(detached_t.requires_grad)  # 输出: False# 永久关闭梯度跟踪
t.requires_grad_(False)
print(t.requires_grad)  # 输出: False

💎 核心要点总结

  1. 张量创建

    • 使用torch.tensor()从Python数据创建
    • 使用torch.from_numpy()从NumPy数组转换
    • 掌握torch.rand(), torch.randn(), torch.ones(), torch.zeros()等创建方法
  2. 数据类型管理

    • 重点掌握float32(模型输入)和int64(分类标签)
    • 使用.float().long()快速转换类型
  3. 设备转移

    • 使用.to(device)在CPU/GPU间移动张量
    • 始终检查tensor.device确保张量位置正确
  4. 自动微分

    • 设置requires_grad=True启用梯度跟踪
    • 使用.backward()自动计算梯度
    • 使用with torch.no_grad():上下文管理器禁用梯度计算
  5. 性能优化

    • 尽量使用就地操作(如add_())减少内存开销
    • 合理使用view()进行形状重塑
    • 及时使用detach()分离不需要的计算图

掌握这些PyTorch张量核心操作,你已为深度学习模型开发打下坚实基础!🎯 下一步可以探索神经网络模块和优化器的使用,开启模型训练之旅!

http://www.dtcms.com/wzjs/173936.html

相关文章:

  • 实训做网站收获百度app打开
  • 免费网站建设 优帮云swot分析
  • xp 做网站服务器吗小游戏推广接单平台
  • 英文网站做翻译接单seo是什么职业做什么的
  • 免费做图片链接网站杭州关键词排名提升
  • wordpress edit_post_link搜索引擎优化的作用是什么
  • 做网站流程 优帮云专业搜索引擎seo公司
  • 网站建设画册网站seo哪家好
  • 药店怎么建设自己的网站百度网盘搜索引擎盘多多
  • 云南疫情最新消息今天又封了如何优化企业网站
  • 怎么建设公司小程序网站小红书seo是什么意思
  • 品牌建设网站服务网站推广的工作内容
  • 易语言做网站登录器公关策划公司
  • 申请一个免费的网站空间如何在百度上发布自己的文章
  • 鄂尔多斯市建设网站谷歌推广
  • 零起飞网站建设工作室公司网站怎么注册
  • 福州网站制作建设百度一下官网手机版
  • 广东手机网站建设哪家专业网页seo搜索引擎优化
  • 什么网站做的靠枕比较有创意什么都不懂能去干运营吗
  • 门户网站模板 免费网站关键词怎么添加
  • 大连专业模板网站制作引流获客app下载
  • 武汉模板自助建站中国百强县市榜单
  • wordpress部分密码seo优化排名教程
  • 前端工程师是做网站吗优化视频
  • 做网站的去哪找客户国内好的seo
  • 网站设计公司发展北京互联网公司排名
  • javascript特效网站谷歌推广网站
  • 网站备案帐户有什么用注册商标查询官网入口
  • 鞍山做网站公司阿里巴巴官网
  • 监控做斗鱼直播网站杭州seo关键字优化