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

网站地图怎么使用东道设计作品图片

网站地图怎么使用,东道设计作品图片,建筑工程合同书范本2023版,羽毛球赛事最新消息在 PyTorch 中,.item() 和 .tolist() 是两个常用于从 Tensor 中提取 Python 原生数据的方法,尤其在调试、日志记录或将结果传给非张量库时非常有用。下面是它们的详解与代码示例。 1. .item() 方法 用途: 将仅包含一个元素的张量&#xff0…

在 PyTorch 中,.item().tolist() 是两个常用于从 Tensor 中提取 Python 原生数据的方法,尤其在调试、日志记录或将结果传给非张量库时非常有用。下面是它们的详解与代码示例。


1. .item() 方法

用途:

仅包含一个元素的张量(即标量张量)转换为对应的 Python 原生数据类型(float, int, 等)。

限制:

只能用于只包含 一个元素的 Tensor,否则会报错。

示例代码:

import torch# 标量 Tensor(只有一个元素)
x = torch.tensor(3.14)# 使用 .item()
python_number = x.item()print(type(python_number))  # <class 'float'>
print(python_number)        # 3.14

错误示例(不能用于多元素 Tensor):

x = torch.tensor([1.0, 2.0])
x.item()  # RuntimeError: a Tensor with more than one value cannot be converted to a scalar

2. .tolist() 方法

用途:

将任意形状的 Tensor 转换为嵌套的 Python 原生列表或标量。比 .item() 更通用。

示例代码:

2.1 一维张量
x = torch.tensor([1.0, 2.0, 3.0])
lst = x.tolist()print(lst)               # [1.0, 2.0, 3.0]
print(type(lst))         # <class 'list'>
print(type(lst[0]))      # <class 'float'>
2.2 多维张量
x = torch.tensor([[1, 2], [3, 4]])
lst = x.tolist()print(lst)  # [[1, 2], [3, 4]]
2.3 标量张量
x = torch.tensor(42)
print(x.tolist())  # 42

.item() vs .tolist() 对比

特性.item().tolist()
支持维度只能用于 0 维 Tensor支持任意维度 Tensor
返回类型标量(int / float)标量或嵌套列表
常用场景获取单个数值用于打印或记录转为 Python 数据结构处理或保存

3.应用场景示例

loss = torch.tensor(0.1234)# 记录训练日志时
print(f"Current loss: {loss.item()}")# 将整个预测结果转换为 NumPy-compatible 格式
output = torch.tensor([[0.2, 0.8], [0.6, 0.4]])
predictions = output.tolist()

4.numpy()、.detach() 与 .item() 的关系

在 PyTorch 中,.item().detach().numpy() 常用于从 Tensor 提取数值数据,尤其在模型训练、评估、日志记录、可视化等阶段非常重要。以下是它们之间的关系详解和实战案例。

三者功能简述与联系

方法作用返回类型适用对象
.item()从单元素张量中提取一个 Python 标量int / float标量张量 (0D)
.tolist()将任意形状张量转为 Python 列表或标量list / 标量任意维度张量
.detach()返回一个新张量,与原张量共享数据但不在计算图中Tensor任意 Tensor
.numpy()将 CPU 上的、非 requires_grad 的 Tensor 转为 NumPy 数组np.ndarrayTensor(需要 .detach() if requires_grad=True)

.detach().numpy() 配合使用

用于从计算图中分离数据,以便:
  • 不影响反向传播
  • 可进行 NumPy 操作、可视化、存储
示例:
import torch
import numpy as npx = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)# 先 detach,然后转为 numpy
x_np = x.detach().numpy()print(type(x_np))     # <class 'numpy.ndarray'>
print(x_np)           # [1. 2. 3.]

注意:如果不 .detach().numpy() 会报错:

x.numpy()  # RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

5.实际训练案例

以下是一个典型的模型训练中使用 .item().detach().numpy() 的完整场景:

import torch
import torch.nn as nn
import torch.optim as optim# 模拟数据与模型
x = torch.randn(10, 3)
y = torch.randn(10, 1)model = nn.Linear(3, 1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)for epoch in range(5):optimizer.zero_grad()output = model(x)loss = criterion(output, y)loss.backward()optimizer.step()# 使用 .item() 记录标量 loss 值print(f"Epoch {epoch}, Loss: {loss.item()}")# 如果要将中间预测输出转为 numpy,用 detach + numpyif epoch == 4:pred_np = output.detach().numpy()print(f"Prediction numpy array:\n{pred_np}")

6.常见组合模式总结

场景推荐使用
获取 loss 值进行日志记录loss.item()
将输出转为 NumPy 作可视化output.detach().numpy()
保存预测结果为 JSON/CSVoutput.detach().tolist()
转换嵌套张量为 Python 数据结构.tolist()
模型调试时避免梯度追踪.detach()

7.使用误区提示

  • .item() 只能用于 一个数(0 维张量),不能用于批量数据。
  • .numpy() 只能用于 CPU Tensor,GPU 上要 .cpu().detach().numpy()
  • .detach() 不是深拷贝,只是从计算图中断开,仍共享数据。

补充示例:GPU 上的用法

x = torch.randn(3, 3, device='cuda', requires_grad=True)# 转为 CPU 的 NumPy 数组
x_np = x.detach().cpu().numpy()


文章转载自:

http://2Upp5yFy.dsgdt.cn
http://3ywz0nlD.dsgdt.cn
http://caLlXQMK.dsgdt.cn
http://4T6SOhBG.dsgdt.cn
http://N3Wz5DW5.dsgdt.cn
http://5Nye0S8i.dsgdt.cn
http://Ykut5pAJ.dsgdt.cn
http://GJSRxGht.dsgdt.cn
http://CZQpivE6.dsgdt.cn
http://OuHrFEjj.dsgdt.cn
http://SZZSOthy.dsgdt.cn
http://hsUE1xi3.dsgdt.cn
http://DpnhjcHh.dsgdt.cn
http://lojdNsA2.dsgdt.cn
http://shAmLnqF.dsgdt.cn
http://qshZat0V.dsgdt.cn
http://Zhlkd438.dsgdt.cn
http://hy5Psi78.dsgdt.cn
http://NXDUoKOv.dsgdt.cn
http://uJtHkT91.dsgdt.cn
http://UxNPdpaW.dsgdt.cn
http://5zqPpBe3.dsgdt.cn
http://92lDLdoE.dsgdt.cn
http://fk2IwT2T.dsgdt.cn
http://UEJPaEGb.dsgdt.cn
http://dMgqhqkq.dsgdt.cn
http://SYGxreIa.dsgdt.cn
http://SVxr2Xmo.dsgdt.cn
http://cMAF6Oz8.dsgdt.cn
http://cdjQlcb4.dsgdt.cn
http://www.dtcms.com/wzjs/653406.html

相关文章:

  • 紫川网站建设室内平面网页设计培训
  • 专业网站设计建设东莞市永铭装饰有限公司
  • php做网站实例咸阳做网站公司
  • 网站一般在哪建设wordpress火车头发布
  • 南充做网站电话网站后缀意思
  • 厦门海沧建设局网站哪个行业最容易做网站
  • 做书app下载网站有哪些内容wordpress没有账号
  • 网站建设衤首选金手指10江门 网站设计
  • 网站鼠标的各种效果怎么做的给人做网站的公司
  • 网站报价单模板软文发布平台有哪些
  • 个人网站的服务器环境安装久久seo正规吗
  • 南京网站建设开发公司mukioplayerwp wordpress
  • 仿 手机 网站模板html源码网站建设方法
  • 顺义制作网站手机论坛网站模板
  • 河南企业网站定制wordpress建站教程道一
  • 宝安龙华积分商城网站建设wordpress源代码分析
  • 网站开发网站设计素材rd wordpress密码
  • 学做网站有用吗汕头网络科技有限公司
  • php做的网站论文关系营销
  • 唐山电商网站建设wordpress 9gag主题
  • php创建站点wordpress博客注册
  • 个人如何建立网站温州网站建设优化
  • 建专业外贸网站通过网站赚钱
  • 大型门户网站建设需要哪些技术mv网站源码
  • 什么是企业网站营销公司报备网站
  • 建网站备案好麻烦h5在线制作免费版
  • 一般公司网站用什么域名套餐做网站申请多少类商标
  • 网站建设推进会哈密网站建设
  • 建站宝盒合作邵阳小学网站建设
  • 吉林省建设厅官方网站办事指南百度识图查另一半情头网页版