RNN 反向传播数学推导(BPTT 时间反向传播)

RNN原理与实战:从记忆机制到梯度问题 循环神经网络(RNN)是一类专为建模序列数据设计的基础深度学习模型,其核心在于隐藏状态的跨时间步传递,实现对历史信息的动态‘记忆’。这种时序依赖性源于网络结构的自反馈连接,但同时也导致训练中典型的梯度消失与梯度爆炸问题。为提升长期依赖建模能力,门控机制(如LSTM、GRU)应运而生,成为RNN演进的关键技术价值。当前,RNN仍在语音识别、工业时序预测、嵌入式端侧NLP等对延迟与资源敏感的场景中保持不可替代性。本文聚焦RNN的本质原理、典型缺陷成因及工程级应对策略,结合BPTT实现细节与PyTorch实操要点 阅读详情

RNN 反向传播数学推导(BPTT 时间反向传播)

一、标准 RNN 前向传播公式

设:

  • 输入序列:xt∈Rdinx_t \in \mathbb{R}^{d_{in}}xt​∈Rdin​
  • 隐藏状态:ht∈Rdhidh_t \in \mathbb{R}^{d_{hid}}ht​∈Rdhid​
  • 输出:ot∈Rdouto_t \in \mathbb{R}^{d_{out}}ot​∈Rdout​
  • 参数:
    WxhW_{xh}Wxh​:输入→隐藏,WhhW_{hh}Whh​:隐藏→隐藏,WhyW_{hy}Why​:隐藏→输出
    bhb_hbh​:隐藏偏置,byb_yby​:输出偏置

前向传播
ht=σ(Wxhxt+Whhht−1+bh)ot=Whyht+byy^t=softmax(ot) \Huge \begin{align} h_t &= \sigma\big(W_{xh}x_t + W_{hh}h_{t-1} + b_h\big) \\ o_t &= W_{hy}h_t + b_y \\ \hat y_t &= \text{softmax}(o_t) \end{align} ht​ot​y^​t​​=σ(Wxh​xt​+Whh​ht−1​+bh​)=Why​ht​+by​=softmax(ot​)​​
σ\sigmaσ 为激活函数(常用 tanh⁡\tanhtanh),损失用交叉熵:
L=∑t=1TLt,Lt=−∑iyt,ilog⁡y^t,i \mathcal{L} = \sum_{t=1}^T \mathcal{L}_t,\quad \mathcal{L}_t = -\sum_i y_{t,i}\log\hat y_{t,i} L=t=1∑T​Lt​,Lt​=−i∑​yt,i​logy^​t,i​


二、BPTT 核心思想

RNN 参数所有时间步共享,反向传播沿时间维度回溯 TTT 步,链式求导:
∂L∂W=∑t=1T∂Lt∂W \Huge \frac{\partial \mathcal{L}}{\partial W} = \sum_{t=1}^T \frac{\partial \mathcal{L}_t}{\partial W} ∂W∂L​=t=1∑T​∂W∂Lt​​

定义梯度记号:
δt=∂L∂ht∈Rdhid \Huge \delta_t = \frac{\partial \mathcal{L}}{\partial h_t} \in \mathbb{R}^{d_{hid}} δt​=∂ht​∂L​∈Rdhid​


三、逐位置梯度推导

1. 输出端梯度 ∂Lt∂ot\dfrac{\partial \mathcal{L}_t}{\partial o_t}∂ot​∂Lt​​

交叉熵+softmax 简化结论:
∂Lt∂ot=y^t−yt \Huge \frac{\partial \mathcal{L}_t}{\partial o_t} = \hat y_t - y_t ∂ot​∂Lt​​=y^​t​−yt​

2. 隐藏层误差 δt\delta_tδt​

链式法则:
δt=∂Lt∂ht=∂ot∂ht⊤∂Lt∂ot+∂ht+1∂ht⊤δt+1 \Huge \delta_t = \frac{\partial \mathcal{L}_t}{\partial h_t} = \frac{\partial o_t}{\partial h_t}^\top \frac{\partial \mathcal{L}_t}{\partial o_t} + \frac{\partial h_{t+1}}{\partial h_t}^\top \delta_{t+1} δt​=∂ht​∂Lt​​=∂ht​∂ot​​⊤∂ot​∂Lt​​+∂ht​∂ht+1​​⊤δt+1​

代入 ot=Whyht+byo_t=W_{hy}h_t+b_yot​=Why​ht​+by​ 和 ht+1=σ(⋅)h_{t+1}=\sigma(\cdot)ht+1​=σ(⋅):
∂ot∂ht=Why⊤ \Huge \frac{\partial o_t}{\partial h_t} = W_{hy}^\top ∂ht​∂ot​​=Why⊤​

∂ht+1∂ht=Whh⊤⊙σ′(zt+1) \Huge \frac{\partial h_{t+1}}{\partial h_t} = W_{hh}^\top \odot \sigma'(z_{t+1}) ∂ht​∂ht+1​​=Whh⊤​⊙σ′(zt+1​)

zt+1=Wxhxt+1+Whhht+bhz_{t+1}=W_{xh}x_{t+1}+W_{hh}h_t+b_hzt+1​=Wxh​xt+1​+Whh​ht​+bh​,⊙\odot⊙ 逐元素乘

得到 δt\delta_tδt​ 递推公式:
δt=Why⊤(y^t−yt)+Whh⊤⋅σ′(zt+1)⊙δt+1 \Huge \delta_t = W_{hy}^\top (\hat y_t - y_t) + W_{hh}^\top \cdot \sigma'(z_{t+1}) \odot \delta_{t+1} δt​=Why⊤​(y^​t​−yt​)+Whh⊤​⋅σ′(zt+1​)⊙δt+1​

终止条件:最后时刻 t=Tt=Tt=T,无下一时刻
δT=Why⊤(y^T−yT) \Huge \delta_T = W_{hy}^\top (\hat y_T - y_T) δT​=Why⊤​(y^​T​−yT​)


四、所有参数梯度公式

1. Why, byW_{hy},\ b_yWhy​, by​

∂L∂Why=∑t=1T(y^t−yt) ht⊤∂L∂by=∑t=1T(y^t−yt) \Huge \begin{align} \frac{\partial \mathcal{L}}{\partial W_{hy}} &= \sum_{t=1}^T (\hat y_t - y_t)\, h_t^\top \\ \frac{\partial \mathcal{L}}{\partial b_y} &= \sum_{t=1}^T (\hat y_t - y_t) \end{align} ∂Why​∂L​∂by​∂L​​=t=1∑T​(y^​t​−yt​)ht⊤​=t=1∑T​(y^​t​−yt​)​​

2. Wxh, Whh, bhW_{xh},\ W_{hh},\ b_hWxh​, Whh​, bh​

先记:∂ht∂zt=σ′(zt)\dfrac{\partial h_t}{\partial z_t} = \sigma'(z_t)∂zt​∂ht​​=σ′(zt​)
∂L∂Wxh=∑t=1Tδt⊙σ′(zt)  xt⊤∂L∂Whh=∑t=1Tδt⊙σ′(zt)  ht−1⊤∂L∂bh=∑t=1Tδt⊙σ′(zt) \Huge \begin{align} \frac{\partial \mathcal{L}}{\partial W_{xh}} &= \sum_{t=1}^T \delta_t \odot \sigma'(z_t)\; x_t^\top \\ \frac{\partial \mathcal{L}}{\partial W_{hh}} &= \sum_{t=1}^T \delta_t \odot \sigma'(z_t)\; h_{t-1}^\top \\ \frac{\partial \mathcal{L}}{\partial b_h} &= \sum_{t=1}^T \delta_t \odot \sigma'(z_t) \end{align} ∂Wxh​∂L​∂Whh​∂L​∂bh​∂L​​=t=1∑T​δt​⊙σ′(zt​)xt⊤​=t=1∑T​δt​⊙σ′(zt​)ht−1⊤​=t=1∑T​δt​⊙σ′(zt​)​​


五、Tanh 激活导数(常用)

若 σ(z)=tanh⁡(z)\sigma(z)=\tanh(z)σ(z)=tanh(z):
σ′(z)=1−tanh⁡2(z)=1−ht2 \Huge \sigma'(z) = 1 - \tanh^2(z) = 1 - h_t^2 σ′(z)=1−tanh2(z)=1−ht2​
直接代入上面公式即可。


(二)RNN 的 反向传播算法详细推导 在反向传播算法理解一文中,大体讲了反向传播算法的大体思想和优势,这篇文章拿最简单的RNN网络推导反向传播算法。 计算图和计算公式 我们拿最具代表性的如下RNN网络图简单推导。 上图是一张计算图。为方便公式推导,我们把公式写出来。对于每一步 t ,都是如下的计算过程。 每一步的损失函数,总的损失函数 L 如下: 在每一步 t 中,是向量形式变量,是向量形式变量,是向量形式变量,是向量形式变量,是向量形式变量;W 是矩阵形式变量,V 是矩阵形式变量,U 是矩阵形式变量(注... 阅读详情

相关推荐

pytorch学习笔记(三十):RNN反向传播计算图公式推导

前言 本节将介绍循环神经网络中梯度的计算和存储方法,即 通过时间反向传播(back-propagation through time)。 正向传播在循环神经网络中比较直观,而通过时间反向传播其实是反向传播在循环神经网络中的具体应用。我们需要将循环神经网络按时间步展开,从而得到模型变量和参数之间的依赖关系,并依据链式法则应用反向传播计算并存储梯度。 1. 定义模型 简单起见,我们考虑一个无偏差项的循环神经网络,且激活函数为恒等映射(ϕ(x)=x\phi(x)=xϕ(x)=x)。设时间步 ttt 的输入为单样本

逐梦er的博客 1780

推导RNN反向传播

先考虑一个样本(输入和激活都是向量而不是矩阵) 正向传播: g是激活函数,例如tanh 输出的激活函数是softmax,损失函数是交叉熵 损失函数对所有时间步求和 以上五个式子就是正向传播中计算输出和损失用到的所有公式,通过对他们链式法则求导,我们也可以推出反向传播的所有公式 反向传播: 当输出的激活函数是softmax,损失函数是交叉熵时,损失函数对线性...

weixin_52100611的博客 1725

手把手推导BPTT:用Excel模拟RNN梯度计算全过程(含数据文件)

本文通过Excel工具,手把手演示了循环神经网络(RNN)中随时间反向传播(BPTT)算法的梯度计算全过程。文章使用一个3时间步的微型序列,赋予具体数值,逐步推导出参数U、V、W的梯度,并提供了可下载的Excel模板供读者验证和实验,帮助读者直观理解梯度在时间维度上的流动与计算原理。

weixin_29046035的博客 218

RNN 反向传播公式推导(非矩阵式)

RNN 反向传播公式推导(非矩阵式) 因为模式识别非要用Latex来编辑公式,所以逼着我写一次博客。嗯,说不定这是一个很好的开始。因为笔者的水平有限,所以如果有不慎有疏漏,烦请不吝赐教。 参考的博客是: 循环神经网络(RNN)模型与前向反向传播算法 - 刘建平Pinard - 博客园 Markdown中数学公式整理 - Zhakel日常 - 优快云博客 关于RNN的基础知识和反向传播的定义就不再...

weixin_41993031的博客 2703

从零实现RNN:理解序列建模核心原理与BPTT算法实战

在深度学习领域,处理序列数据是一项基础且关键的任务。序列数据如文本、语音、时间序列等,其核心特征在于元素之间存在时间或顺序上的依赖关系。为了建模这种依赖,递归神经网络(RNN)应运而生,它通过引入循环连接和隐藏状态,使网络具备了“记忆”能力。RNN的核心原理在于其权重共享的循环结构,能够在每个时间步结合当前输入与历史信息,生成新的隐藏状态和输出。然而,训练RNN面临的主要挑战是梯度消失与爆炸问题,这需要通过随时间反向传播(BPTT)算法和梯度裁剪等技术来应对。理解BPTT算法对于掌握RNN训练至关重要,它是

weixin_30730053的博客 776

RNN梯度消失原理与BPTT推导:从理论到实践的深度解析

在深度学习领域,循环神经网络(RNN)是处理序列数据的经典模型,但其训练过程中常面临梯度消失的挑战。梯度消失源于反向传播时误差信号沿时间轴的连乘衰减,这通过随时间反向传播(BPTT)算法可以清晰揭示。该问题导致模型难以学习长期依赖关系,严重影响其在时间序列预测、自然语言处理等场景的性能。为应对这一挑战,实践中发展出多种策略,包括使用LSTM、GRU等门控机制结构,它们通过细胞状态和门控单元为梯度流动提供高速公路;此外,权重初始化技巧如单位矩阵初始化、梯度裁剪以及优化器选择也能有效缓解问题。理解RNN的梯度消

weixin_34211761的博客 414

RNN公式推导详解:从前向传播到BPTT与梯度消失

序列数据广泛存在于文本、语音与时间序列预测中,而循环神经网络(RNN)正是处理这类数据的经典结构。RNN通过隐藏状态将历史信息传递给当前时刻,实现跨时间的记忆建模。理解其数学原理,尤其是反向传播算法(BPTT)的完整推导过程,是掌握RNN训练技巧和解决实际工程问题的关键。在推导中,误差项沿时间轴逐层回传,涉及矩阵连乘,这既带来了参数共享的效率,也引发了梯度消失与梯度爆炸。通过手推公式和数值验证,可以直观感受梯度如何流动,从而更深刻地理解梯度裁剪、权重初始化以及LSTM/GRU门控机制的动机。本文以一个最小R

weixin_29051811的博客 350

从零推导BPTT:手撕RNN梯度传播与代码实战

本文详细解析了RNN中BPTT算法的数学推导与实现技巧,从梯度传播原理到NumPy/PyTorch实战对比,深入探讨了梯度爆炸的解决方案。通过代码示例展示如何手动实现BPTT,并分析LSTM架构如何改进梯度流动,帮助开发者掌握深度学习中的序列建模核心技术。

weixin_29083373的博客 284

RNN原理与实战:从BPTT梯度推导到NumPy手写实现

序列建模是深度学习中的核心问题,从语音识别到日志异常检测都离不开对变长时序信息的处理。循环神经网络(RNN)通过隐藏状态实现记忆传递,其权重共享设计使其具备在线处理能力,然而沿时间反向传播(BPTT)带来的梯度消失与爆炸成为训练难点。理解RNN的数学结构、梯度流动及NumPy手写实现,不仅有助于掌握LSTM、GRU等变体,更能深刻理解Transformer中注意力机制的出发点。本文从RNN的本质出发,结合实践讲解原理、代码实现与调参经验,帮助开发者构建扎实的序列建模基础。

weixin_29052717的博客 300

【RNN数据预测】时间反向传播 (BPTT) 训练RNN递归神经网络预测【含Matlab源码 2434期】

时间反向传播 (BPTT) 训练RNN递归神经网络预测 完整代码和数据,方可运行;数据可直接替换,适合小白!可提供运行操作视频!

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

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 568

RNN(循环神经网络)

摘要:本文介绍了循环神经网络(RNN)的基本原理,重点阐述了其通过隐藏状态和循环连接处理序列数据的特点。详细说明了RNN的数学表示方法,包括权重矩阵、激活函数等关键参数,并展示了如何简化公式表达。文章还涵盖了具有反向传播功能的RNN结构,解释了前向传播和反向传播过程,以及不同输入输出结构的RNN类型。

jjjjjjjjiay的博客 67

解题报告-美团点评2017秋招笔试编程题--常见动态规划问题

晚上就要美团笔试了,在牛客上刷套美团的题练练手,四道题目全都是典型题目,经典的连题面都懒得改那种,也都不难,很基础的动态规划问题。[编程题] 大富翁游戏时间限制:1秒空间限制:32768K大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。 输...

聂小白的专栏 1721

手写RNN实战:用二进制加法彻底搞懂循环神经网络与BPTT

循环神经网络是处理序列数据的经典模型,其核心机制在于隐藏状态随时间步传递信息。然而反向传播中的跨时间步梯度推导(BPTT)常令初学者困惑。通过一个极简的二进制加法任务,配合纯Python和NumPy从零搭建RNN,可以清晰观察前向传播过程与梯度累加原理。该实践不仅验证了序列依赖的建模方法,更暴露了梯度爆炸、初始化敏感等工程问题。从模型结构到训练调参,再到梯度裁剪技巧,这种方法论可迁移至文本生成、时间序列预测等真实场景。理解RNN底层逻辑后,再使用深度学习框架将游刃有余。本文完整展示了从数据构造到BPTT推导

weixin_34246529的博客 248

Easymesh之拓扑模块(二)

介绍 easymesh 拓扑消息:Topo discovery、Topo notification、Topo query、Topo response

qq_53619687的博客 2156

电路研究9.4——合宙Air780EP的LuatOS、CSDK跟标准AT

 C-SDK、AT指令、LuatOS

esmember的博客 1116

循环神经网络 - 参数学习之随时间反向传播算法

BPTT 算法将循环神经网络看作一个展开的多层前馈网络,其中“每一层”对 应循环网络中的“每个时刻”。这样,循环神经网络就可以按照前馈网络中的反向传播算法计算参数梯度。在“展开”的前馈网络中,所有层的参数是共享的,因此参数的真实梯度是所有“展开层”的参数梯度之和。

分享技术人生的学习笔记和过往心得,与志同道合者共同进步 1827

宇树G1嵌入式软件架构及技术实现

该架构通过硬件加速(FPGA)+确定性调度(RTX5)的组合,在1ms控制周期内完成从传感器采集到43轴输出的全链路处理,相比波士顿动力系统缩短40%的着地稳定时间。,结合ARM Cortex-R5与FPGA的异构计算能力,实现43自由度1kHz实时控制。

m0_60674045的博客 4311

从零手写RNN:用numpy实现循环神经网络的前向与反向传播

循环神经网络(RNN)是处理时间序列数据的核心模型,其关键思想在于通过隐藏状态在时间步之间传递信息,形成对历史输入的“记忆”。然而,框架封装让许多开发者只停留在调用层面,难以真正理解其内部机制。本文从底层原理出发,使用numpy从零实现一个完整的RNN,涵盖前向传播、随时间反向传播(BPTT)以及梯度裁剪等关键技术细节。通过正弦波预测任务,直观验证模型效果,并剖析常见问题如梯度爆炸、参数初始化缺陷的产生原因与排查方法。手写实现不仅有助于彻底理解RNN的数学本质,也能为后续学习LSTM、GRU等变体打下坚实基

weixin_29035405的博客 225

别再搞混了!用示波器实测SVPWM:相电压、线电压、端电压波形到底长啥样?(附TI/ST官方笔记解读)

本文详细解析了SVPWM波形实测中的相电压、线电压和端电压的区别与测量技巧,结合TI/ST官方笔记,揭示了马鞍形波形的形成原理及常见误区。通过示波器实测案例,帮助电力电子工程师准确理解并应用这些关键概念,提升电机控制系统的调试效率。

weixin_30632883的博客 433

使用 Simulink + Simscape Electrical 对基于VSG控制的背靠背变流器整流侧进行建模与仿真

本文介绍了基于Simulink的直驱风电系统背靠背变流器整流侧虚拟同步发电机(VSG)建模方法。首先阐述了直驱风电系统结构和VSG控制的作用,然后详细指导了模型搭建过程:从创建项目、添加PMSG和变流器模块,到搭建主电路拓扑和实现VSG控制逻辑。重点说明了VSG控制器如何模拟传统同步发电机的特性,并提供了仿真设置和结果分析方法。该模型可用于研究风电系统在不同工况下的响应特性,为新能源发电系统设计提供重要参考。

amy_mhd的博客 181

RNN、LSTM 学习之路

0.Recurrent Neural Network 学习之路 1. Recurrent Neural Network Based Language Model(RNNLM)原理及BPTT数学推导 2. LSTM简介以及数学推导(FULL BPTT)

海尔兄弟的博客 1409

【OpenClaw企业级智能体实战】第09篇:OpenClaw金融投研实战:17个场景+完整代码,打造专属数字研究员

金融投研面临信息过载、流程重复、数据安全合规三大核心痛点,OpenClaw作为本地部署的新一代AI智能体,凭借“长期记忆+主动执行+数据不出域”的优势,成为券商分析师集体追捧的效率工具。本文基于8家头部券商公开研报,拆解OpenClaw在金融投研的17个核心应用场景(信息处理、研报撰写、量化策略、流程自动化),详解原理、技术选型、实操流程,并提供可直接运行的完整代码与执行结果。文章兼顾新手入门与进阶提升,强调安全隔离部署与幻觉防范,读者可按步骤搭建专属投研智能体,将信息处理、数据整理等重复工作效率提升80%

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 678

从零理解RNN:前向传播、BPTT与梯度消失的底层逻辑

序列建模的核心在于捕捉数据中的顺序与上下文依赖,而循环神经网络(RNN)正是通过权值共享与隐藏状态实现记忆机制的基础结构。其原理是将循环按时间展开,利用时间反向传播(BPTT)沿链式法则回传梯度,但连乘效应会引发梯度消失或爆炸,导致长距离依赖难以学习。理解这一机制对掌握LSTM、GRU等改进模型至关重要,也是处理文本、语音、时序预测等任务的关键基础。在情感分类、命名实体识别、机器翻译等场景中,RNN及其变体仍是入门序列建模最直观的切入点。

weixin_29053073的博客 216

ssm框架搭建

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

BPTT基于时间的反向传播:原理推导与手写RNN训练实战

反向传播是神经网络训练的基础算法,而循环神经网络因参数在时间步间共享,需将循环结构沿时间展开为前馈链,再沿时间反向传播梯度并累加共享参数贡献,这一过程即BPTT。其核心递推结构决定了梯度爆炸与消失的成因,也催生了梯度裁剪、正交初始化、门控结构及截断BPTT等工程对策。在序列预测、文本建模与时序信号处理中,掌握BPTT的展开图、链式法则与参数梯度累加,是手写RNN训练流程、排查梯度异常的关键基础。

weixin_30985047的博客 339

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从零手推RNN与LSTM反向传播:BPTT公式推导与梯度消失解析

反向传播是深度学习模型训练的核心机制,而BPTT(沿时间反向传播)则是序列模型梯度计算的基础。其原理在于将循环结构沿时间轴展开,利用链式法则逐时间步回传误差,并对共享参数进行梯度累加。掌握BPTT的数学推导,不仅能从底层理解梯度消失与爆炸的根源,还能在工程实践中精准定位训练异常。在自然语言处理、语音识别、时间序列预测等序列建模场景中,RNN与LSTM的梯度推导直接影响模型调优效率。本文从RNN单元出发,逐步推导至LSTM四个门控的完整梯度公式,结合维度检查与数值梯度检验,帮助读者彻底看透序列模型训练的黑箱。

weixin_29044713的博客 287

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

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

上一篇: 机器学习 矩阵求导 完整公式+严谨推导
下一篇: Seq2Seq(Sequence-to-Sequence,序列到序列)工作原理
王_teacher
博客等级 码龄9年 118粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值