PyTorch翻译官网教程2-TENSORS

PyTorch的学习笔记01-基础中的基础 主要内容源于对PyTorch的doc的阅读: Doc 仅记录了我认为比较常用和有用的API。 torch.is_tensor(obj),若obj为Tensor类型,那么返回True。 torch.numel(obj),返回Tensor对象中的元素总数。 torch.eye(n),返回一个单位方阵,和MATLAB的eye()非常像。还有其他参数。 torch.fro 阅读详情

官网链接

https://pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html

张量

张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。

张量类似于NumPy中的ndarray,除了张量可以在gpu或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而消除了复制数据的需要(参见 Bridge with NumPy)。张量还针对自动微分进行了优化(稍后我们将在Autograd 一节中看到更多相关内容)。如果您熟悉ndarray,那么您将对Tensor API非常熟悉。如果没有,跟着做!

import torch
import numpy as np

初始化张量

张量可以用不同的方式初始化。看下面的这些例子:

通过数据初始化

张量可以直接从数据中创建。自动推断数据类型。
 

data = [[1, 2],[3, 4]]
x_data = torch.tensor(data)


通过NumPy数组初始化

张量可以从NumPy数组中创建 (反之亦然 - 参见 Bridge with NumPy).

np_array = np.array(data)
x_np = torch.from_numpy(np_array)

通过另一个张量初始化

新张量保留原张量参数的属性(形状,数据类型),除非显式覆盖。

x_ones = torch.ones_like(x_data) # retains the properties of x_data
print(f"Ones Tensor: \n {x_ones} \n")

x_rand = torch.rand_like(x_data, dtype=torch.float) # overrides the datatype of x_data
print(f"Random Tensor: \n {x_rand} \n")

输出

Ones Tensor: 
 tensor([[1, 1],
        [1, 1]]) 

Random Tensor: 
 tensor([[0.3272, 0.0090],
        [0.7144, 0.0619]]) 

通过随机或指定值初始化

形状是张量维度的元组,在下面的函数中,它决定了输出张量的维度。

shape = (2,3,)
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)

print(f"Random Tensor: \n {rand_tensor} \n")
print(f"Ones Tensor: \n {ones_tensor} \n")
print(f"Zeros Tensor: \n {zeros_tensor}")

输出

Random Tensor: 
 tensor([[0.2801, 0.1581, 0.3181],
        [0.4325, 0.7844, 0.0716]]) 

Ones Tensor: 
 tensor([[1., 1., 1.],
        [1., 1., 1.]]) 

Zeros Tensor: 
 tensor([[0., 0., 0.],
        [0., 0., 0.]])

张量的属性

张量属性描述它们的形状、数据类型和存储它们的设备。

tensor = torch.rand(3,4)

print(f"Shape of tensor: {tensor.shape}")
print(f"Datatype of tensor: {tensor.dtype}")
print(f"Device tensor is stored on: {tensor.device}")

输出

Shape of tensor: torch.Size([3, 4])
Datatype of tensor: torch.float32
Device tensor is stored on: cpu

张量的运算

超过100多种张量运算操作,包括算术,线性代数,矩阵操作(转置,索引,切片),采样和更多的全面描述在这里(here)

这些操作都可以在GPU上运行(通常比在CPU上运行速度更快)。如果你使用的是Colab,通过运行时分配GPU>更改运行时类型>GPU。

默认情况下,张量是在CPU上创建的。我们需要使用.to方法显式地将张量移动到GPU(在检查GPU可用性之后)。请记住,跨设备复制大型张量在时间和内存方面可能会很昂贵!

# We move our tensor to the GPU if available
if torch.cuda.is_available():
    tensor = tensor.to("cuda")

尝试列表中的一些操作。如果你熟悉NumPy API,你会发现使用Tensor API很容易。

标准的numpy-索引和切片:

tensor = torch.ones(4, 4)
print(f"First row: {tensor[0]}")
print(f"First column: {tensor[:, 0]}")
print(f"Last column: {tensor[..., -1]}")
tensor[:,1] = 0
print(tensor)

输出

First row: tensor([1., 1., 1., 1.])
First column: tensor([1., 1., 1., 1.])
Last column: tensor([1., 1., 1., 1.])
tensor([[1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.]])

你可以用torch.cat 沿着给定的维数串联张量序列 来连接张量。参见torch.stack, 另一个张量连接算子,与torch.cat略有不同。

t1 = torch.cat([tensor, tensor, tensor], dim=1)
print(t1)

输出

tensor([[1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1.],
        [1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1.],
        [1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1.],
        [1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1.]])

算术运算

# This computes the matrix multiplication between two tensors. y1, y2, y3 will have the same value
# ``tensor.T`` returns the transpose of a tensor
y1 = tensor @ tensor.T
y2 = tensor.matmul(tensor.T)

y3 = torch.rand_like(y1)
print(torch.matmul(tensor, tensor.T, out=y3))


# This computes the element-wise product. z1, z2, z3 will have the same value
z1 = tensor * tensor
z2 = tensor.mul(tensor)

z3 = torch.rand_like(tensor)
print(torch.mul(tensor, tensor, out=z3))

输出

tensor([[3., 3., 3., 3.],
        [3., 3., 3., 3.],
        [3., 3., 3., 3.],
        [3., 3., 3., 3.]])
tensor([[1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.]])

Single-element tensors,如果你有一个元素的张量,例如通过将一个张量的所有值聚合为一个值,你可以使用item()将其转换为Python数值:

agg = tensor.sum()
agg_item = agg.item()
print(agg_item, type(agg_item))

输出

12.0 <class 'float'>

In-place 操作,将结果存储到操作数中的操作称为In-place调用。它们用后缀_表示。例如:x.copy_(y), x.t_(),将改变x。

print(f"{tensor} \n")
tensor.add_(5)
print(tensor)

输出

tensor([[1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.],
        [1., 0., 1., 1.]])

tensor([[6., 5., 6., 6.],
        [6., 5., 6., 6.],
        [6., 5., 6., 6.],
        [6., 5., 6., 6.]])

注意

In-place操作可以节省一些内存,但是在计算衍生品时可能会出现问题,因为会立即丢失历史记录。因此,不鼓励使用它们。

与NumPy的转换

CPU和NumPy数组上的张量可以共享它们的底层内存位置,更改其中一个将更改另一个。

张量转换NumPy数组

t = torch.ones(5)
print(f"t: {t}")
n = t.numpy()
print(f"n: {n}")

输出

t: tensor([1., 1., 1., 1., 1.])
n: [1. 1. 1. 1. 1.]

张量的变化同时作用在NumPy数组中。

t.add_(1)
print(f"t: {t}")
print(f"n: {n}")
t: tensor([2., 2., 2., 2., 2.])
n: [2. 2. 2. 2. 2.]

NumPy数组转换张量

n = np.ones(5)
t = torch.from_numpy(n)

NumPy数组的变化同时作用在张量中。

np.add(n, 1, out=n)
print(f"t: {t}")
print(f"n: {n}")

输出

t: tensor([2., 2., 2., 2., 2.], dtype=torch.float64)
n: [2. 2. 2. 2. 2.]

MIT深度学习免费资源实操指南:从官网到Llama-2微调全链路 深度学习作为人工智能的核心范式,其发展高度依赖前沿算法、可复现代码与硬件协同优化。State-of-the-art(SOTA)模型如Diffusion Transformer、LLaMA-2和FlashAttention-2,已不再仅存于论文,而是被系统性融入顶尖高校的教学基础设施中。MIT通过开源课程、Jupyter实验、Docker环境及论文-代码映射体系,构建了兼具学术严谨性与工程落地性的免费知识库。这类资源的价值不仅在于‘免费’,更在于其版本可控、硬件感知、调试透明——特别适合具备PyTorch基础 阅读详情

相关推荐

从零搭建离线AI语音翻译器:基于Whisper、MarianMT与TTS的本地化实践

语音识别(ASR)与机器翻译(MT)是人工智能领域的关键技术,它们分别负责将语音转换为文本和在不同语言间进行语义转换。其核心原理在于利用深度神经网络模型,对音频信号和文本序列进行编码与解码。这项技术的价值在于打破了语言沟通的壁垒,实现了信息的无障碍流转。在工程实践中,结合语音合成(TTS)技术,可以构建完整的端到端语音翻译管道,广泛应用于跨国商务、旅行助手、内容本地化及注重数据隐私的边缘计算场景。本文聚焦于实现完全离线的语音翻译方案,通过集成Whisper、MarianMT等开源模型,手把手指导如何部署一个

weixin_34210740的博客 324

【浅显易懂系列】Pytorch快速认识和掌握向量乘积运算

在PyTorch中,向量和矩阵之间的不同乘积操作非常关键,尤其是在进行深度学习模型构建和数学运算时。下面,我将详细解释您提到的几种乘积类型,并提供具体的代码示例和使用场景。

weixin_39188311的博客 1265

MCP协议接入与PyTorch/TVM工程化实战指南

MCP(Model Control Protocol)作为AI模型服务化的标准化通信协议,正逐步成为连接模型、工具与业务系统的基础设施层;其核心价值在于定义统一的RESTful接口契约,解决模型孤岛与集成碎片化问题。结合PyTorch 2.3+的torch.compile优化、CUDA Graph调度及TVM 2024版跨平台量化编译能力,开发者可实现从训练完成到终端部署的端到端加速。该技术路径显著提升推理吞吐、降低硬件适配成本,并支撑Android、Jetson、树莓派等边缘场景落地。本文聚焦MCP服务构

weixin_33851429的博客 195

【pytorch矩阵应用】

当你想要将PyTorch模型导出为ONNX(Open Neural Network Exchange)格式时,矩阵乘法等模型中的操作也会被包含在导出的模型中。导出的ONNX模型包含了模型的结构和权重,以及进行前向传播所需的所有操作,包括矩阵乘法。矩阵乘法在PyTorch中是非常常见的操作,特别是在进行深度学习模型训练和推断时。总之,矩阵乘法在PyTorch中是非常常见的操作,并且有多种方法可以实现。这个函数不仅可以处理2D矩阵,还可以处理更高维度的张量,只要它们的维度是兼容的。的随机张量,代表模型的输入。

小秋的博客 1317

无参考后训练:无需平行语料,用对比学习提升大语言模型翻译质量

在自然语言处理领域,大语言模型(LLM)的微调是提升其特定任务性能的关键技术。传统方法通常依赖于大量高质量的平行语料进行监督微调,但这在专业领域或小语种中面临数据稀缺、成本高昂的瓶颈。对比学习作为一种自监督学习范式,通过让模型在正负样本对中学习区分高质量与低质量输出,能够有效引导模型内化任务标准。这种技术价值在于,它能够利用更易获取的单语语料,突破数据依赖限制,实现模型能力的专项优化。在机器翻译场景中,通过构造目标语言的高质量与加噪文本对,模型可以学习到优秀译文在流畅性、信息完整性和术语准确性等方面的特征,

weixin_34038293的博客 380

PyTorch、TensorFlow与JAX实战选型指南:研究落地与生产部署的工程权衡

AI框架不仅是代码工具,更是连接算法构想与硬件执行的‘思维翻译器’。从自动微分原理到计算图编译机制,不同框架在动态性、确定性与函数式表达上存在根本差异。PyTorch以eager模式支撑快速迭代与调试友好性,TensorFlow依托SavedModel与XLA保障云上部署一致性与边缘量化能力,JAX则通过jit/grad/vmap提供高阶可微分编程范式。技术价值体现在研究复现效率、生产SLA达标率与跨平台可维护性;典型场景覆盖金融风控模型迭代、医疗影像辅助诊断部署及工业预测性维护系统构建。本文基于12个跨行

weixin_30423977的博客 376

Pytorch教程(十五):element-wise、Broadcasting

t1 = torch.tensor([ [1,2], [3,4] ], dtype=torch.float32) t2 = torch.tensor([ [9,8], [7,6] ], dtype=torch.float32) 我们先创建了两个秩为2,形状为KaTeX parse error: Undefined control sequence: \tmes at position 3: 2 \̲t̲m̲e̲s̲ ̲2的张量,这意味着我们有两个轴,他们都有两个元素的长度,

vincent_duan的专栏 2686

【AI】PyTorch入门(一):通过Anaconda安装PyTorch,并总结张量TENSORS

张量是一种特殊的数据结构,与数组和矩阵非常相似。示例代码如下,想像下x、y分别是表示一个平面,可以当作一张纸,stack拼接是将x、y对齐叠加起来,即组成一个三维立体的张量。本人环境没有GPU,您的环境如果有的话,可以使用tensor = tensor.to(‘cuda’),将张量导入CUDA上。书接上文,切片的作用就是为了获取一整行或一整列,就像拿刀切成一片一片的,比喻的不是很严谨,但是很形象。维度dim表示对三维立体张量的数据划分,再想像下,原来x、y分别是两个平面,现在组成一个长方体。

郭老二 628

深度学习之concatenate和elementwise操作(二)

一、深度学习里面的element-wise特征相乘和相加到底有什么区别? 很多深度学习模型在设计时,中间特征在分支处理后,然后可能会采用element-wise相乘或相加,不知道这个乘和加的细微区别? 答:相加的两个tensor通常都是具有特征意义的tensor,相乘的话,一般来说,其中一个tensor是有类似权重的含义,而不是特征意义。 二、concatenation operation 向量之间的拼接 代码例子如下: import numpy as np a = np.array(

deep_love1314的博客 1万+

Windows上python的spark环境搭建

1.安装好JDK 下载并安装好jdk-12.0.1_windows-x64_bin.exe,配置环境变量: 新建系统变量JAVA_HOME,值为Java安装路径 新建系统变量CLASSPATH,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意最前面的圆点) 配置系统变量PATH,添加 %JAVA_HOME%bin;%JAVA_HOME%jrebin 在CMD中输入:java或者java -version,不显示不是内部命令等,说明安装成功。

weixin_43915303的博客 652

在虚拟机上搭建FTP服务器

chroot_list_file=/etc/vsftpd/chroot_list # 对chroot_list下用户限制。[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #打开配置文件。# 指定用户的shell: -s /usr/bin/nologin。# 在配置文件中找到以下几行代码, 去掉注释(去掉 "#"号)# 指定用户主目录:/data/ftp/ftpuser -M。(2)修改配置文件,路径/etc/vsftpd/ 下的文件。

weixin_70753380的博客 3211

【Pytorch官网tutorial】1.2 TENSORS张量

是一种专门的数据结构,非常类似于数组和。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。张量类似于NumPy的ndarrays,唯一的区别是张量可以在GPU或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,不需要复制数据(参见与NumPy之间的桥接)。张量还对自动微分进行了优化(我们稍后会在Autograd部分看到更多)。如果您熟悉ndarrays,那么API就非常容易理解。如果不熟悉,跟着我们一起学习吧!

qilu_88的博客 218

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程。从运动学建模入手,对比了基于距离与基于位置偏差的两种控制策略,并重点阐述了高精度轨迹跟踪的控制器设计、Simulink仿真搭建及PID参数整定方法,为移动机器人运动控制提供了完整的仿真实践指南。

weixin_29169505的博客 314

【Pytorch官网tutorial】1.3 DATASETS & DATALOADERS

一个自定义数据集类必须实现三个函数:__init__、__len__和__getitem__。请看下面的实现;FashionMNIST图片存储在一个名为img_dir的目录中,它们的标签分别存储在CSV文件annotations_file中。在接下来的几个部分中,我们将分别介绍每个函数。import os#os和pandas是用于操作文件系统和进行数据处理的标准Python库,而read_image是PyTorch中用于读取图像数据的函数。

qilu_88的博客 209

WSL2+Docker+Ollama:解锁Windows本地GPU加速运行DeepSeek-R1模型

本文详细介绍了在Windows系统上,通过WSL2、Docker和Ollama的组合方案,实现本地GPU加速运行DeepSeek-R1模型的全过程。该方案解决了Windows环境下Ollama默认无法调用NVIDIA显卡的痛点,通过配置Docker的GPU支持,强制将计算任务分配给GPU,从而显著提升文本生成速度与效率,为开发者提供了一个便捷的本地AI测试环境。

weixin_28452161的博客 358

UCD9081EVM电源时序管理:硬件配置与GUI操作全解析

电源时序管理是复杂电子系统设计的核心环节,它通过精确控制多路电源的上电/下电顺序,确保核心芯片免受浪涌电流或电压倒灌的损害。其原理基于状态机逻辑与电压监控,技术价值在于将硬连线时序转化为可编程配置,极大提升了系统可靠性与设计灵活性。在服务器、通信设备、工控系统等高可靠性应用场景中,时序控制器是实现稳定启动与故障保护的关键。本文以德州仪器UCD9081评估模块为例,深入剖析其硬件跳线配置与图形用户界面操作,涵盖I2C地址设置、电压监控分压计算、时序条件与故障响应策略等工程实践要点,帮助工程师快速掌握这一电源时

weixin_42696271的博客 303

python官方中文文档下载,python中文官网下载安装

大多数机器学习工作流程涉及处理数据、创建模型、优化模型参数和保存训练好的模型用python画笑脸代码。本教程介绍一个用PyTorch实现的完整的ML工作流程,并提供链接来了解这些概念中的每一个。将使用FashionMNIST数据集来训练一个神经网络,预测输入图像是否属于以下类别之一。T恤/上衣、长裤、套头衫、连衣裙、外套、凉鞋、衬衫、运动鞋、包、或踝靴。本教程假定对Python和深度学习概念有基本的了解。在定义自己的数据集时,需要继承Dataset类__init____len__, 和。看看这个实现;

high_colever的博客 421

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 303

SeamlessM4T多模态翻译模型实战:语音到语音端到端实现

多模态机器翻译(MMT)正从传统ASR+MT+TTS三段式流水线,迈向统一建模的端到端范式。其核心原理在于构建跨模态共享的语义表示空间,通过联合训练实现语音、文本、声学特征的隐式对齐,从而规避错误累积、时序错位与模态鸿沟等固有缺陷。该技术显著提升实时性、韵律保真度与跨语言一致性,广泛应用于跨国客服、无障碍字幕生成、纪录片多语配音等强交互场景。SeamlessM4T作为典型代表,依托PyTorch框架与Hugging Face transformers生态,结合sentencepiece多语言分词能力,为开发

weixin_34279579的博客 444

2026华为OD机考新系统真题 + 双机位C卷 + 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 45万+

【语音分析】语音倒谱分析(变声器 男变女 女变男 童声)【含GUI Matlab源码 4247期】

语音倒谱分析(变声器 男变女 女变男 童声) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 826

pytorch tutorials

pytorch tutorials-tensors 本篇文章来自pytorch官网,自己翻译加理解。 Tensors 是一种特殊的数据结构,和数组(array)和矩阵(matrices)类似,在pytorch中,使用tensors来组织输入和输出的数据以及模型的参数。它很像NumPy的ndarray,除了一点:tensors可以在GPU上并行计算。其他的和ndarray都很像。 import torch import numpy as np Tensor Initialization-Tensor的初始化

czhichao的博客 355

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

无需平行语料!基于Llama-Factory的无参考后训练提升大模型翻译能力实战

在自然语言处理领域,大语言模型的微调通常依赖于大量高质量的标注数据,例如机器翻译任务中的双语平行语料。其核心原理是通过有监督学习,让模型学习源语言到目标语言的精确映射。然而,高质量平行语料的稀缺性,尤其是对于小语种或专业领域,严重制约了模型的泛化能力和应用范围。为了解决这一痛点,一种创新的“无参考后训练”方法应运而生。该方法的技术价值在于,它绕过了对平行语料的直接依赖,转而利用更易获取的单语语料和对比学习,分别强化模型对源语言和目标语言的深层理解与生成能力,并通过质量判别任务对齐其内在的多语言表示。这使得模

weixin_34166847的博客 395

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PyTorch入门实战:从环境搭建到CNN训练的完整路径

PyTorch作为主流深度学习框架,其核心在于张量(Tensor)的动态计算图机制与设备协同调度能力。理解张量的内存管理、形状变换规则及`.to()`设备迁移逻辑,是避免`RuntimeError: Expected all tensors to be on the same device`等高频报错的基础;掌握`nn.Module`的模块注册原理与`state_dict()`保存范式,则直接关系到模型可复现性与工程落地稳定性。本文聚焦零基础学习者真实卡点——CUDA版本匹配、Anaconda环境隔离、ID

weixin_32830601的博客 137

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于Gemma开源大模型构建本地化翻译服务:从Prompt工程到服务化部署

机器翻译作为自然语言处理的核心任务,经历了从统计机器翻译到神经机器翻译的技术演进。其核心原理是通过大规模平行语料训练模型,学习语言间的映射关系,实现跨语言信息转换。这项技术的价值在于打破语言壁垒,促进全球化信息交流与协作。在应用场景上,传统云翻译API虽便捷,但存在数据隐私、网络延迟和持续成本等问题。开源大语言模型的出现为本地化部署提供了新思路,通过Prompt工程引导模型完成翻译任务,无需专门训练。本文以Google轻量级开源模型Gemma为例,详细讲解如何构建一个功能完备、可本地运行的翻译服务,涵盖环境

diaoju3333的博客 411

PyTorch C++ API 全解:ATen、Autograd、C++ Frontend 与 LibTorch 实战指南

本文以 PyTorch 仓库中的 [C++ API 文档入口](https://link.gitcode.com/i/e70ef1d06e503762e7f924fb1366445c) 为主体,系统梳理 PyTorch 公共 C++ API 的五大组成部分(ATen、Autograd、C++ Frontend、TorchScript、C++ Extensions),并结合仓库源码与配套文档(安装指

gitblog_00071的博客 501
上一篇: PyTorch翻译官网教程1-QUICKSTART
下一篇: PyTorch翻译官网教程3-DATASETS & DATALOADERS
poorCoder_
博客等级 码龄10年 129粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值