活动介绍

D2C和B2C的区别

时间: 2025-02-12 18:16:47 浏览: 60
D2C (Direct-Consumer) 和 B2C (Business-to-Consumer) 是两种不同的商业销售模式。 在 D2C 模型中,制造商或品牌直接向最终消费者出售产品和服务,没有中间商参与。这种模型让企业能够更紧密地控制客户体验的所有方面,并能更好地收集和利用顾客数据来优化营销策略、提高产品质量以及增强客户服务。例如,一些公司选择建立自己的在线商店或者通过社交媒体平台直接售卖商品给消费者。 而在 B2C 模式里,交易发生在企业和个人消费者之间,但通常涉及零售商或其他类型的分销渠道作为中介。这意味着生产者不会直接接触到终端买家;相反,他们把货物卖给零售店或者其他形式的经销商,再由这些实体负责将产品提供给公众。像亚马逊这样的大型电商平台就是典型的B2C例子之一。 两者的主要区别在于: - 销售途径不同:D2C绕过了传统零售商,而B2C依赖于第三方卖家。 - 客户互动程度不一样:由于去除了中间环节,D2C可以实现更加个性化的沟通和服务。 - 数据获取能力有所差异:D2C可以直接获得一手用户反馈和行为习惯信息,有助于精准营销。 - 成本结构各异:虽然省去了批发折扣,但是维护自有销售渠道可能带来更高的固定成本对于D2C来说。 综上所述,这两种商业模式各有优劣,取决于企业的战略目标和发展阶段等因素决定最适合哪种方式。
相关问题

使用C语言实现MATLAB的d2c函数功能,基于零阶保持器(ZOH)将二阶Z变换传递函数转换为连续时间传递函数,并提供完整的C代码实现。

<think>我们计划实现一个通用的二阶离散传递函数转换为连续传递函数的函数(ZOH方法)。二阶离散传递函数的一般形式为: $$ H(z) = \frac{b_0 z^2 + b_1 z + b_2}{z^2 + a_1 z + a_2} $$ 注意:通常我们会将分母写成首一多项式(即最高次项系数为1),所以这里分母为$z^2 + a_1 z + a_2$。 使用零阶保持器(ZOH)方法将离散系统转换为连续系统,需要将离散状态空间模型转换为连续状态空间模型。具体步骤如下: 1. 将离散传递函数转换为离散状态空间(可控规范型)。 2. 利用矩阵对数和矩阵运算,将离散状态空间矩阵转换为连续状态空间矩阵。 3. 将连续状态空间矩阵转换回连续传递函数。 对于二阶系统,我们可以显式地写出状态空间表达式,并计算矩阵对数(对于2x2矩阵有解析解)。但是,矩阵对数的计算通常比较复杂,对于一般的2x2矩阵,我们可以使用特征值分解的方法。 然而,为了简化,我们可以利用以下关系(对于ZOH): 离散状态空间方程: $$ x[k+1] = A_d x[k] + B_d u[k] $$ $$ y[k] = C_d x[k] + D_d u[k] $$ 连续状态空间方程: $$ \dot{x}(t) = A_c x(t) + B_c u(t) $$ $$ y(t) = C_c x(t) + D_c u(t) $$ 它们之间的关系为: $$ A_d = e^{A_c T} $$ $$ B_d = \int_{0}^{T} e^{A_c \tau} d\tau B_c = A_c^{-1}(e^{A_c T} - I) B_c \quad \text{(如果$A_c$可逆)} $$ 因此,从离散到连续的转换: $$ A_c = \frac{1}{T} \ln(A_d) $$ $$ B_c = (A_d - I)^{-1} A_c B_d \quad \text{(注意:这里要求$A_d-I$可逆)} $$ 而$C_c = C_d$,$D_c = D_d$。 然后,从连续状态空间$(A_c, B_c, C_c, D_c)$转换为传递函数: $$ G(s) = C_c (sI - A_c)^{-1} B_c + D_c $$ 对于二阶系统,传递函数为: $$ G(s) = \frac{ (c_{11} b_{c1} + c_{12} b_{c2}) s + (c_{11} (a_{c12} b_{c2} - a_{c22} b_{c1}) + c_{12} (a_{c21} b_{c1} - a_{c11} b_{c2}) + c_{11} b_{c1} a_{c22} - c_{12} b_{c2} a_{c21}) ) }{s^2 - (a_{c11}+a_{c22})s + (a_{c11}a_{c22}-a_{c12}a_{c21})} + D_c $$ 但这样直接计算比较复杂,我们可以通过以下步骤: 1. 将离散传递函数转换为离散状态空间(我们选择可控规范型)。 2. 计算矩阵$A_d$的矩阵对数得到$A_c$(对于2x2矩阵,我们可以用特征值分解的方法计算矩阵对数)。 3. 计算$B_c = (A_d - I)^{-1} A_c B_d$(注意:当$A_d$有特征值为1时,$A_d-I$不可逆,此时需要特殊处理,但一般情况下,离散系统稳定且没有积分器时,$A_d$的特征值不为1)。 4. 连续状态空间的$C_c$和$D_c$与离散状态空间相同。 5. 将连续状态空间转换为传递函数。 由于C语言没有内置的矩阵运算,我们将自己实现2x2矩阵的求逆、矩阵乘法、矩阵对数(通过特征值分解)等。 步骤详细: ### 1. 离散传递函数转离散状态空间(可控规范型) 对于二阶系统: $$ H(z) = \frac{b_0 z^2 + b_1 z + b_2}{z^2 + a_1 z + a_2} $$ 可控规范型为: $$ A_d = \begin{bmatrix} 0 & 1 \\ -a_2 & -a_1 \end{bmatrix}, \quad B_d = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \quad C_d = \begin{bmatrix} b_2 - b_0 a_2 & b_1 - b_0 a_1 \end{bmatrix}, \quad D_d = b_0 $$ 注意:这里假设传递函数是严格正则的(即分子阶数小于等于分母阶数),如果分子阶数等于分母阶数,则$D_d = b_0$(即分子最高次项系数),否则$D_d=0$。但我们的公式中分子最高次项系数为$b_0$,所以$D_d = b_0$。 ### 2. 计算连续状态空间矩阵$A_c$ 计算$A_c = \frac{1}{T} \ln(A_d)$,其中$\ln(A_d)$是矩阵对数。对于2x2矩阵,如果$A_d$有两个不同的特征值$\lambda_1, \lambda_2$,则可以通过特征值分解计算矩阵对数。公式如下: 设矩阵$A$的特征值为$\lambda_1, \lambda_2$,对应的特征向量矩阵为$V$,则: $$ \ln(A) = V \begin{bmatrix} \ln(\lambda_1) & 0 \\ 0 & \ln(\lambda_2) \end{bmatrix} V^{-1} $$ 如果特征值相同(重根),则使用Jordan型分解。但为了简化,我们假设特征值不同(大多数情况),如果遇到重根,我们可以使用极限情况。 ### 3. 计算$B_c$ $$ B_c = (A_d - I)^{-1} A_c B_d $$ ### 4. $C_c = C_d, D_c = D_d$ ### 5. 连续状态空间转连续传递函数 连续传递函数: $$ G(s) = C_c (sI - A_c)^{-1} B_c + D_c $$ 对于二阶系统,$(sI - A_c)^{-1}$可以显式计算。设: $$ A_c = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}, \quad B_c = \begin{bmatrix} b_{1} \\ b_{2} \end{bmatrix}, \quad C_c = \begin{bmatrix} c_{1} & c_{2} \end{bmatrix} $$ 则: $$ (sI - A_c)^{-1} = \frac{1}{s^2 - (a_{11}+a_{22})s + (a_{11}a_{22}-a_{12}a_{21})} \begin{bmatrix} s - a_{22} & a_{12} \\ a_{21} & s - a_{11} \end{bmatrix} $$ 因此: $$ G(s) = \frac{1}{\Delta(s)} \begin{bmatrix} c_1 & c_2 \end{bmatrix} \begin{bmatrix} s - a_{22} & a_{12} \\ a_{21} & s - a_{11} \end{bmatrix} \begin{bmatrix} b_{1} \\ b_{2} \end{bmatrix} + D_c $$ 其中$\Delta(s) = s^2 - (a_{11}+a_{22})s + (a_{11}a_{22}-a_{12}a_{21})$ 分子多项式为: $$ N(s) = \begin{bmatrix} c_1 & c_2 \end{bmatrix} \begin{bmatrix} (s - a_{22}) b_1 + a_{12} b_2 \\ a_{21} b_1 + (s - a_{11}) b_2 \end{bmatrix} + D_c \Delta(s) $$ 展开: $$ N(s) = c_1 [ (s - a_{22}) b_1 + a_{12} b_2 ] + c_2 [ a_{21} b_1 + (s - a_{11}) b_2 ] + D_c (s^2 - (a_{11}+a_{22})s + (a_{11}a_{22}-a_{12}a_{21})) $$ 合并同类项,得到分子多项式(关于s的二次多项式)。 ### 代码步骤 1. 输入离散传递函数的系数:`b0, b1, b2`(分子),`a1, a2`(分母,注意分母首一,所以分母为z^2 + a1*z + a2)和采样时间`T`。 2. 构建离散状态空间矩阵`Ad, Bd, Cd, Dd`。 3. 计算`Ad`的特征值,然后计算矩阵对数`logAd`(即`ln(Ad)`),然后得到`Ac = logAd / T`。 4. 计算`Bc = inv(Ad - I) * Ac * Bd`(注意:当`Ad-I`不可逆时,需要处理,这里假设可逆)。 5. `Cc = Cd, Dc = Dd`。 6. 计算连续传递函数的分母和分子多项式系数。 注意:矩阵对数的计算需要特征值分解,我们为2x2矩阵编写特征值分解函数。 由于C语言没有复数运算,我们假设特征值为实数(对于稳定系统,离散系统的特征值在单位圆内,但连续系统的特征值在左半平面,所以矩阵对数的特征值是复数?实际上,离散系统特征值在单位圆内,取对数后为负实数,所以特征值是实数?不对,离散系统特征值在单位圆内,取对数后,如果特征值是负实数,则对数会得到复数(因为负数对数在实数范围内无定义)。因此,我们需要处理复数特征值的情况。但是,对于稳定的离散系统,特征值在单位圆内,取对数后,实部为负,虚部在[-π,π]之间。在C语言中处理复数比较麻烦。 为了避免复数,我们可以使用另一种方法:将离散状态空间转换为连续状态空间时,使用泰勒级数展开或Pade近似,但这样精度不高。或者,我们可以使用另一种解析方法:对于二阶系统,直接求解连续传递函数。 另一种思路:利用双线性变换的逆变换?但题目要求ZOH。 考虑到复杂度,我们假设离散系统的特征值为实数(即系统是过阻尼或临界阻尼的),这样矩阵对数的计算可以仅在实数范围内进行。如果遇到复特征值,则输出错误(或扩展为复数运算,但这里为了简化,我们只处理实特征值的情况)。 ### 实现2x2矩阵的特征值分解(实数特征值) 对于矩阵$A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}$,特征值为: $$ \lambda_1 = \frac{(a+d) + \sqrt{(a+d)^2 - 4(ad-bc)}}{2}, \quad \lambda_2 = \frac{(a+d) - \sqrt{(a+d)^2 - 4(ad-bc)}}{2} $$ 如果判别式大于等于0,则特征值为实数,否则为复数。这里我们只处理判别式非负的情况。 特征向量:对于特征值$\lambda$,解$(A-\lambda I)v=0$得到特征向量。 然后,构建矩阵$V$,使得$A = V \Lambda V^{-1}$,则$\ln(A) = V \ln(\Lambda) V^{-1}$,其中$\ln(\Lambda)$是对角线上为$\ln(\lambda_1)$和$\ln(\lambda_2)$的对角矩阵。 ### 编写辅助函数 - `mat22_eigen`: 计算2x2矩阵的特征值(实数)和特征向量(如果特征值为复数,返回错误)。 - `mat22_inv`: 计算2x2矩阵的逆。 - `mat22_mul`: 2x2矩阵乘法。 - `mat22_log`: 计算2x2矩阵的对数(要求特征值为正实数,因为负数对数会得到复数,我们这里假设特征值为正实数,因为离散系统稳定且特征值在(0,1)内?注意:离散系统稳定,特征值在单位圆内,可以是负的,但负数的对数是复数,所以我们要求特征值为正实数,即系统没有振荡?这显然限制了系统类型。因此,我们不得不处理复数对数,但为了简化,我们只处理特征值为正实数的情况。如果遇到负特征值,我们将其视为复数,并计算复对数,但这样就需要复数运算。因此,我们扩展为支持复数运算?或者,我们可以使用其他方法,如使用泰勒级数展开计算矩阵对数,但这样会非常复杂。 鉴于上述困难,我们考虑另一种方法:使用ZOH转换的另一种形式,即通过传递函数直接转换。但是,对于高阶系统,没有直接的公式,而状态空间方法是通用的。 因此,我们决定只处理特征值为正实数的二阶系统(即离散系统没有振荡,且稳定)。对于有振荡的系统(特征值为复数),我们暂时不处理。 ### 代码结构 ```c #include <stdio.h> #include <math.h> // 定义2x2矩阵类型 typedef struct { double data[2][2]; } Mat22; // 定义向量类型 typedef struct { double data[2]; } Vec2; // 定义连续传递函数:二阶,分子和分母都是二次多项式 typedef struct { double num[3]; // s^2, s, 常数项,从高到低 double den[3]; // s^2, s, 常数项 } ContTransferFunc; // 辅助函数:2x2矩阵乘法 Mat22 mat22_mul(Mat22 a, Mat22 b) { Mat22 c; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { c.data[i][j] = 0; for (int k = 0; k < 2; k++) { c.data[i][j] += a.data[i][k] * b.data[k][j]; } } } return c; } // 辅助函数:2x2矩阵乘以向量 Vec2 mat22_mul_vec(Mat22 m, Vec2 v) { Vec2 r; r.data[0] = m.data[0][0]*v.data[0] + m.data[0][1]*v.data[1]; r.data[1] = m.data[1][0]*v.data[0] + m.data[1][1]*v.data[1]; return r; } // 辅助函数:2x2矩阵求逆 int mat22_inv(Mat22 in, Mat22 *out) { double det = in.data[0][0]*in.data[1][1] - in.data[0][1]*in.data[1][0]; if (fabs(det) < 1e-10) { return 0; // 不可逆 } out->data[0][0] = in.data[1][1] / det; out->data[0][1] = -in.data[0][1] / det; out->data[1][0] = -in.data[1][0] / det; out->data[1][1] = in.data[0][0] / det; return 1; } // 辅助函数:2x2矩阵特征分解(仅实特征值),返回特征值和特征向量 // 成功返回1,否则0(遇到复数特征值) int mat22_eigen(Mat22 m, double *lambda1, double *lambda2, Mat22 *v) { double tr = m.data[0][0] + m.data[1][1]; double det = m.data[0][0]*m.data[1][1] - m.data[0][1]*m.data[1][0]; double disc = tr*tr - 4*det; if (disc < 0) { return 0; // 复数特征值,暂不处理 } *lambda1 = (tr + sqrt(disc)) / 2.0; *lambda2 = (tr - sqrt(disc)) / 2.0; // 计算特征向量 // 对于lambda1 // (A - lambda1 I) v1 = 0 double a11 = m.data[0][0] - *lambda1; double a12 = m.data[0][1]; double a21 = m.data[1][0]; double a22 = m.data[1][1] - *lambda1; // 取第一个非零行,构造特征向量 if (fabs(a11) > 1e-6 || fabs(a12) > 1e-6) { // 用第一行 v->data[0][0] = a12; v->data[1][0] = -a11; } else if (fabs(a21) > 1e-6 || fabs(a22) > 1e-6) { // 用第二行 v->data[0][0] = -a22; v->data[1][0] = a21; } else { // 零矩阵,任意向量 v->data[0][0] = 1; v->data[1][0] = 0; } // 归一化特征向量(可选,这里不归一化,因为后面要求逆,所以用非归一化) // 对于lambda2 a11 = m.data[0][0] - *lambda2; a12 = m.data[0][1]; a21 = m.data[1][0]; a22 = m.data[1][1] - *lambda2; if (fabs(a11) > 1e-6 || fabs(a12) > 1e-6) { v->data[0][1] = a12; v->data[1][1] = -a11; } else if (fabs(a21) > 1e-6 || fabs(a22) > 1e-6) { v->data[0][1] = -a22; v->data[1][1] = a21; } else { v->data[0][1] = 0; v->data[1][1] = 1; } return 1; } // 计算2x2矩阵的对数(实特征值且为正) int mat22_log(Mat22 m, Mat22 *logm) { double lambda1, lambda2; Mat22 v; // 特征向量矩阵 if (!mat22_eigen(m, &lambda1, &lambda2, &v)) { return 0; // 特征值为复数,失败 } // 要求特征值为正 if (lambda1 <= 0 || lambda2 <= 0) { return 0; } // 计算特征向量矩阵的逆 Mat22 vinv; if (!mat22_inv(v, &vinv)) { return 0; } // 构建对角矩阵的对数 Mat22 logD; logD.data[0][0] = log(lambda1); logD.data[0][1] = 0; logD.data[1][0] = 0; logD.data[1][1] = log(lambda2); // 计算 logm = v * logD * vinv Mat22 temp = mat22_mul(v, logD); *logm = mat22_mul(temp, vinv); return 1; } // 主函数:d2c_zoh_second_order // 输入:离散传递函数系数 (b0, b1, b2) 分子,分母为 (1, a1, a2) [首一] // 采样时间 T // 输出:连续传递函数结构体 // 返回:成功1,失败0 int d2c_zoh_second_order(double b0, double b1, double b2, double a1, double a2, double T, ContTransferFunc *result) { // 1. 构建离散状态空间(可控规范型) Mat22 Ad; Ad.data[0][0] = 0; Ad.data[0][1] = 1; Ad.data[1][0] = -a2; Ad.data[1][1] = -a1; Vec2 Bd; Bd.data[0] = 0; Bd.data[1] = 1; double Cd_data[2] = { b2 - b0*a2, b1 - b0*a1 }; double Dd = b0; // 2. 计算连续状态空间矩阵 Ac = ln(Ad) / T Mat22 logAd; if (!mat22_log(Ad, &logAd)) { return 0; // 矩阵对数计算失败 } // Ac = logAd / T Mat22 Ac; for (int i=0; i<2; i++) { for (int j=0; j<2; j++) { Ac.data[i][j] = logAd.data[i][j] / T; } } // 3. 计算 Bc = (Ad - I)^{-1} * Ac * Bd // 先计算 Ad - I Mat22 Ad_minus_I; Ad_minus_I.data[0][0] = Ad.data[0][0] - 1; Ad_minus_I.data[0][1] = Ad.data[0][1]; Ad_minus_I.data[1][0] = Ad.data[1][0]; Ad_minus_I.data[1][1] = Ad.data[1][1] - 1; Mat22 inv_Ad_minus_I; if (!mat22_inv(Ad_minus_I, &inv_Ad_minus_I)) { return 0; // 不可逆 } // 计算 Ac * Bd Vec2 AcBd = mat22_mul_vec(Ac, Bd); // 计算 Bc = inv_Ad_minus_I * AcBd Vec2 Bc = mat22_mul_vec(inv_Ad_minus_I, AcBd); // Cc = Cd, Dc = Dd double Cc[2] = { Cd_data[0], Cd_data[1] }; double Dc = Dd; // 4. 计算连续传递函数 // 分母多项式:s^2 - (a11+a22)s + (a11*a22 - a12*a21) double a11 = Ac.data[0][0]; double a12 = Ac.data[0][1]; double a21 = Ac.data[1][0]; double a22 = Ac.data[1][1]; // 分母系数 double den[3]; den[0] = 1.0; // s^2 den[1] = -(a11 + a22); // s den[2] = a11*a22 - a12*a21; // 常数项 // 分子多项式:分子 = Cc * (sI - Ac)^{-1} * Bc + Dc 的分子部分 // 分子 = Cc * [ (s - a22) * b1 + a12 * b2 ] + Dc * (s^2 + den[1]*s + den[2]) // [ a21 * b1 + (s - a11) * b2 ] // 其中Bc = [b1, b2]^T double b1c = Bc.data[0]; double b2c = Bc.data[1]; // 分子多项式是一个二次多项式,我们展开: // 令分子 = N(s) = n0 s^2 + n1 s + n2 // 有两种方法: // 方法1:直接展开传递函数表达式 // 方法2:通过多项式乘法 // 这里我们直接展开: // 分子多项式 = Cc * [ (s - a22) b1c + a12 b2c, a21 b1c + (s - a11) b2c ]^T // + Dc * (s^2 + den[1]*s + den[2]) // 即: // = Cc[0] * ( (s - a22)*b1c + a12*b2c ) + Cc[1] * ( a21*b1c + (s - a11)*b2c ) // + Dc * (s^2 + den[1]*s + den[2]) // 合并s^2, s, 常数项 // 分别计算各项系数 double n0 = Dc; // Dc * s^2 double n1 = Cc[0]*b1c + Cc[1]*b2c + Dc * den[1]; // s的系数:Cc[0]*b1c + Cc[1]*b2c + Dc*den[1] double n2 = Cc[0]*( -a22*b1c + a12*b2c) + Cc[1]*(a21*b1c - a11*b2c) + Dc * den[2]; // 常数项 // 但是,上面n1的表达式正确吗?我们重新整理: // 将Cc部分展开: // Cc[0]*(s*b1c - a22*b1c + a12*b2c) + Cc[1]*(a21*b1c + s*b2c - a11*b2c) // = s*(Cc[0]*b1c + Cc[1]*b2c) + [ Cc[0]*(-a22*b1c+a12*b2c) + Cc[1]*(a21*b1c - a11*b2c) ] // 再加上Dc部分:Dc*s^2 + Dc*den[1]*s + Dc*den[2] // 所以: // s^2: Dc // s: (Cc[0]*b1c + Cc[1]*b2c) + Dc*den[1] // 常数: [ Cc[0]*(-a22*b1c+a12*b2c) + Cc[1]*(a21*b1c - a11*b2c) ] + Dc*den[2] // 因此,分子多项式系数为:n0 = Dc, n1 = (Cc[0]*b1c + Cc[1]*b2c) + Dc*den[1], n2 = ... // 所以,分子多项式为:n0*s^2 + n1*s + n2 // 存储结果 result->num[0] = n0; result->num[1] = n1; result->num[2] = n2; result->den[0] = den[0]; result->den[1] = den[1]; result->den[2] = den[2]; return 1; } int main() { // 示例:原连续系统为 G(s) = 1/(s^2+3s+2),即两个极点-1和-2 // 采样时间T=0.1s,离散化后(使用ZOH)的离散传递函数 // 离散传递函数系数计算(可通过MATLAB的c2d函数得到): // H(z) = (b0*z^2 + b1*z + b2) / (z^2 + a1*z + a2) // 这里我们预先计算一个例子: // 连续传递函数:1/(s^2+3s+2) -> 离散传递函数(ZOH,T=0.1): // numd = [0.0046788, 0.010635, 0.004055] // dend = [1, -1.856, 0.8607] // 所以:b0=0.0046788, b1=0.010635, b2=0.004055, a1=-1.856, a2=0.8607 // 注意:这里分母是z^2 + a1*z + a2,所以a1和a2为负值?实际上,MATLAB返回的dend是[1, a1, a2]。 double b0 = 0.0046788; double b1 = 0.010635; double b2 = 0.004055; double a1 = -1.856; double a2 = 0.8607; double T = 0.1; ContTransferFunc cont_tf; if (d2c_zoh_second_order(b0, b1, b2, a1, a2, T, &cont_tf)) { printf("连续传递函数分子: %.6f s^2 + %.6f s + %.6f\n", cont_tf.num[0], cont_tf.num[1], cont_tf.num[2]); printf("连续传递函数分母: %.6f s^2 + %.6f s + %.6f\n", cont_tf.den[0], cont_tf.den[1], cont_tf.den[2]); // 期望连续传递函数分母为 s^2+3s+2,分子为1 } else { printf("转换失败\n"); } return 0; } ``` 注意:由于离散化过程有误差,再转换回连续系统也会有误差。另外,这个例子中离散传递函数是通过ZOH离散化得到的,我们再用ZOH转换回去,应该接近原系统。 运行该程序,输出连续传递函数的分子和分母系数。由于数值误差,可能不会完全等于原系统,但应该接近。 ### 注意 1. 该代码只适用于二阶系统,且离散传递函数的分母为首一多项式(最高次项系数为1)。 2. 要求离散系统的特征值为正实数(即系统是过阻尼的),否则矩阵对数计算会失败。 3. 数值稳定性:在计算特征值和矩阵逆时,可能引入数值误差。 对于高阶系统,需要更通用的方法,但本代码仅针对二阶系统。 §§相关问题§§ 1. 如何扩展此代码以处理更高阶系统的d2c转换? 2. 如何处理离散系统有复数特征值的情况? 3. d2c转换中ZOH和Tustin方法的主要区别是什么? 4. 在实时控制系统中,d2c转换的应用场景有哪些? [^1]: MATLAB中自带很多方法可以实现,连续系统模型与离散系统模型的相互转化: 连续模型-->离散模型离散模型-->连续模型Gz = c2d(Gs,T,'使用方法')Gs = d2c(Gz,T,'使用方法')zoh:

graph TD A[大模型训练流程] --> B[数据准备] B --> B1[数据收集] B1 --> B1a[公开数据集] B1 --> B1b[私有数据] B1 --> B1c[网络爬取] B --> B2[数据预处理] B2 --> B2a[数据清洗] B2 --> B2b[分词/编码] B2 --> B2c[数据增强] A --> C[模型架构设计] C --> C1[Transformer结构] C --> C2[参数规模设计] C --> C3[并行策略] A --> D[训练阶段] D --> D1[参数初始化] D --> D2[分布式训练] D2 --> D2a[数据并行] D2 --> D2b[模型并行] D2 --> D2c[流水线并行] D --> D3[训练监控] D3 --> D3a[Loss曲线] D3 --> D3b[梯度监控] D3 --> D3c[硬件利用率] A --> E[评估与调优] E --> E1[测试集评估] E1 --> E1a[困惑度] E1 --> E1b[下游任务指标] E1 --> E1c[BLEU/ROUGE] E --> E2[模型压缩] E2 --> E2a[量化] E2 --> E2b[剪枝] E2 --> E2c[蒸馏] A --> F[部署应用] F --> F1[推理优化] F --> F2[服务部署] F --> F3[持续训练] style A fill:#f9f,stroke:#333,stroke-width:4px classDef process fill:#e6f3ff,stroke:#3388ff class B,C,D,E,F process

<think>好的,用户想了解大模型训练的整体流程和各个阶段的关键步骤。首先,我需要回忆一下大模型训练的一般流程,通常包括数据准备、模型架构设计、训练阶段、评估调优以及部署应用这几个主要部分。 首先,数据准备阶段。用户提到了数据收集和预处理,这里我需要详细说明数据收集的来源可能包括公开数据集、网络爬取或者专有数据。预处理步骤可能涉及清洗、去重、分词、标准化等。特别是要强调数据质量的重要性,因为数据质量直接影响模型性能。同时,数据划分(训练集、验证集、测试集)也是关键,可以参考引用[1]提到的内容。 接下来是模型架构设计。用户提到Transformer结构,这需要解释Transformer的核心组件,比如自注意力机制和前馈网络。参数规模方面,需要说明大模型的参数量通常在十亿到万亿级别,比如GPT-3。并行策略方面,引用[3]提到的数据并行、模型并行和分布式训练都是重点,需要详细说明每种策略的应用场景。 然后是训练阶段。初始化部分可能需要提到参数初始化的方法,比如Xavier初始化。分布式训练需要结合引用[3]的内容,解释如何利用多GPU或多节点进行训练。监控部分包括损失函数、准确率等指标的跟踪,以及硬件资源的监控,确保训练稳定性。 评估与调优阶段,测试集评估可以引用[1]中的内容,说明测试集用于最终评估模型泛化能力。模型压缩方面,引用[2]提到的模型压缩方法如剪枝、量化、知识蒸馏需要详细解释,以及如何调整超参数防止过拟合。 最后是部署应用。推理优化可能涉及模型转换、量化、使用TensorRT等工具。服务部署需要考虑高并发、低延迟,可能使用容器化技术如Docker。持续训练方面,需要说明如何根据用户反馈更新模型,保持模型的实时性。 在回答过程中,要注意用户可能的需求,比如他们可能是研究人员或工程师,需要技术细节,但也要保持解释的易懂性。同时,用户可能希望了解每个阶段的具体挑战和解决方案,比如数据预处理中的去重和噪声处理,分布式训练中的通信开销问题等。还要注意引用相关的内容,如数据划分引用[1],并行策略引用[3],模型压缩引用[2]等,确保回答有据可依。 最后,生成相关问题时要覆盖各个阶段,比如数据准备的问题、模型架构的选择、训练中的优化方法、评估指标和部署挑战等,帮助用户进一步深入学习。</think># 大模型训练全流程解析 ## 一、数据准备阶段 ### 1. 数据收集与清洗 - 通过公开数据集(如Common Crawl)、网络爬虫、专有数据等多渠道获取原始数据 - 进行去重、去噪、格式标准化等预处理,如使用$p = \frac{\text{有效数据量}}{\text{总数据量}}$量化数据质量[^1] - 语言类数据需进行分词、子词切分(BPE算法)等处理 ### 2. 数据划分与特征工程 - 按比例划分训练集/验证集/测试集(典型比例7:2:1) - 构建词表时采用动态调整策略,例如:$$ V = \{w | \text{freq}(w) \geq \theta \} \cup \{\text{<unk>}, \text{<pad>}\} $$ - 引用[1]指出验证集应保持与测试集相同的分布特征 ## 二、模型架构设计 ### 1. Transformer核心结构 ```python class TransformerLayer(nn.Module): def __init__(self, d_model, nhead): super().__init__() self.self_attn = MultiHeadAttention(d_model, nhead) self.ffn = PositionwiseFeedForward(d_model) def forward(self, x): x = x + self.self_attn(x) x = x + self.ffn(x) return x ``` ### 2. 参数规模设计 - 典型参数配置:层数$L \in [12, 96]$,隐藏层维度$d_{model} \in [768, 12288]$ - 注意力头数满足$n_{head} = d_{model}/64$的约束条件 ### 3. 并行策略选择 - 数据并行:单机多卡基础方案 - 流水线并行:将模型层拆分到不同设备 - 张量并行:拆分权重矩阵计算,如Megatron-LM的矩阵分块策略[^3] ## 三、训练阶段实施 ### 1. 分布式训练框架 ```python # PyTorch分布式训练示例 def train(): dist.init_process_group(backend='nccl') model = DDP(model) for batch in dataloader: loss = model(batch) loss.backward() optimizer.step() ``` ### 2. 混合精度训练 - 使用FP16+FP32混合精度,内存占用降低约40% - 动态损失缩放策略:$$ scale_t = \begin{cases} 2scale_{t-1} & \text{if } \|g\| < threshold \\ scale_{t-1}/2 & \text{otherwise} \end{cases} $$ ### 3. 训练监控指标 - 损失曲线:关注训练/验证损失差值$\Delta \mathcal{L} = \mathcal{L}_{train} - \mathcal{L}_{val}$ - 硬件利用率:GPU使用率需保持>85%,显存利用率<90%[^4] ## 四、评估与调优 ### 1. 多维度评估体系 | 评估类型 | 指标示例 | 工具 | |----------------|------------------------------|--------------------| | 语言建模 | Perplexity, BPC | EVAL-LM | | 下游任务 | GLUE评分, SuperGLUE | HuggingFace | | 伦理安全 | 偏见评分, 毒性检测 | Perspective API | ### 2. 模型压缩技术 - 知识蒸馏:使用教师-学生架构,损失函数:$$ \mathcal{L} = \alpha \mathcal{L}_{CE} + (1-\alpha)KL(p_T||p_S) $$ - 量化部署:FP32→INT8转换,保持精度损失<1%[^2] ## 五、部署应用 ### 1. 推理优化方案 - 使用TensorRT进行图优化,提升推理速度3-5倍 - 批处理策略:动态批处理+请求队列管理 ### 2. 服务化部署架构 ```mermaid graph TD A[客户端] --> B(负载均衡器) B --> C[模型实例1] B --> D[模型实例2] B --> E[模型实例N] C & D & E --> F[分布式缓存] F --> G[监控系统] ```
阅读全文

相关推荐

访问这个链接的结果为: { "files": [ { "can_preview": true, "mtime": 1752200743.3571475, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 25398381 }, { "can_preview": true, "mtime": 1752200744.7667117, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_013f5d58-d76c-42aa-b100-fcd8e6e7b98g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 87652 }, { "can_preview": true, "mtime": 1752200748.7376227, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_0532adc7-1689-45c5-ab09-c96a2531463g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 4994979 }, { "can_preview": true, "mtime": 1752200746.604213, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_19a882be-33fe-4707-8648-0a20b064609g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2938449 }, { "can_preview": true, "mtime": 1752200749.6988163, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_741dac6e-6e41-499f-8b63-795c3edede8g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 247638 }, { "can_preview": true, "mtime": 1752200746.9230618, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_75090569-6c7d-4235-a7f0-ecac3d1e963g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 249654 }, { "can_preview": true, "mtime": 1752200750.8250003, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_7b866cb7-1024-4362-ae44-6600946d30cg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 164102 }, { "can_preview": true, "mtime": 1752200747.778991, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_aa84a94b-c69b-4c46-b08f-1582a65b095g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 197210 }, { "can_preview": true, "mtime": 1752200745.4500687, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_b00f08e3-a74f-48d6-ab3e-555e2ce604ag.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2710459 }, { "can_preview": true, "mtime": 1752200747.311726, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_b558e37a-926d-47b7-89d6-1233aa9b0b5g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 282270 }, { "can_preview": true, "mtime": 1752200745.8643231, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_e0e12811-633f-4d38-b376-5373ebe0784g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 266050 }, { "can_preview": true, "mtime": 1752200744.3701608, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_e5a8886e-a733-4cc1-8f78-7189a12894fg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 227253 }, { "can_preview": true, "mtime": 1752200749.3452551, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_e6ced646-6eff-4cb1-947e-2f2d4807bc9g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2102351 }, { "can_preview": true, "mtime": 1752200750.503888, "name": "25\u5e74\u5f00\u5de5\u62bd\u5956\u6d3b\u52a8_img_v3_02j8_f0825b5d-fcc0-4078-a98c-64566396beag.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2838805 }, { "can_preview": true, "mtime": 1752200776.6211667, "name": "OUTING\u4e4b\u65c51_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 18460292 }, { "can_preview": true, "mtime": 1752200766.3894248, "name": "OUTING\u4e4b\u65c51_img_v3_02lm_a41418b0-6db9-412e-b690-cfe0f17312eg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1136598 }, { "can_preview": true, "mtime": 1752200816.7569714, "name": "OUTING\u4e4b\u65c52_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 18344773 }, { "can_preview": true, "mtime": 1752200852.0151906, "name": "OUTING\u4e4b\u65c53_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 862559 }, { "can_preview": true, "mtime": 1752200846.9884284, "name": "OUTING\u4e4b\u65c53_img_v3_02ld_b14a84d3-6c7d-46a2-b79a-5c4ac0bb780g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 541899 }, { "can_preview": true, "mtime": 1752200853.928368, "name": "OUTING\u4e4b\u65c53__cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=6145679541113436743&skey=@crypt_ac4338a6_26bd3d2a965b0ba0a304ba909f481e15&mmweb_appid=wx_webfilehelper.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2812723 }, { "can_preview": true, "mtime": 1752200840.9481006, "name": "OUTING\u4e4b\u65c53__cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=667996164205922799&skey=@crypt_ac4338a6_26bd3d2a965b0ba0a304ba909f481e15&mmweb_appid=wx_webfilehelper.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 5421391 }, { "can_preview": true, "mtime": 1752200853.2741344, "name": "OUTING\u4e4b\u65c53__cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=8268313471041909110&skey=@crypt_ac4338a6_26bd3d2a965b0ba0a304ba909f481e15&mmweb_appid=wx_webfilehelper.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 7018186 }, { "can_preview": true, "mtime": 1752200871.7543476, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 564888 }, { "can_preview": true, "mtime": 1752200870.3716223, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02nk_26060a7c-f823-4f2a-b256-fb0ec446cd8g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2265168 }, { "can_preview": true, "mtime": 1752200869.7618518, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02nk_e455c03c-f9de-4467-bc80-15c99854237g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1711097 }, { "can_preview": true, "mtime": 1752200871.0175784, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02nq_20b01e18-22b5-4c54-9e6a-6589a3482b1g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 173134 }, { "can_preview": true, "mtime": 1752200871.3259213, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02nq_7acd58e3-3101-4e7d-ba19-73b0bc7432cg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 108211 }, { "can_preview": true, "mtime": 1752200870.6822138, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02nq_a64d628f-b54d-4d63-9f87-99536b55baeg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 167154 }, { "can_preview": true, "mtime": 1752200872.4140625, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02o0_301a07f6-c68b-40d8-992e-6c5fc074ea4g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 98511 }, { "can_preview": true, "mtime": 1752200872.0891826, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f2_img_v3_02o0_fa1e5d64-6706-42cb-b8ee-211c36c8af8g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 211854 }, { "can_preview": true, "mtime": 1752200856.748391, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02lq_0eff4bb5-2190-498b-86f9-4b4e60ad487g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2982462 }, { "can_preview": true, "mtime": 1752200855.5227075, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02lq_b81c0c90-3a36-465c-81af-3bd0f033cc4g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1974015 }, { "can_preview": true, "mtime": 1752200856.0571115, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02lq_ead86c4b-a1bd-4731-8db1-5b6b9ceefd9g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1783780 }, { "can_preview": true, "mtime": 1752200854.949087, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02lr_516f66f5-8d5a-46c5-9b1f-6e3fe846d0cg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1365616 }, { "can_preview": true, "mtime": 1752200854.4514596, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02lr_524711fc-7ed1-40c9-9798-d881d5e2334g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1830381 }, { "can_preview": true, "mtime": 1752200857.9564285, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02mg_8f74e227-c62d-49e1-8741-29593cdfcc2g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1744258 }, { "can_preview": true, "mtime": 1752200857.3897274, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02mg_b3b866a8-eaf5-438b-a3f5-a38b5d2c804g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 2345138 }, { "can_preview": true, "mtime": 1752200858.7978349, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02mt_6811648f-d528-455a-ad31-083a51e837dg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 131855 }, { "can_preview": true, "mtime": 1752200867.2742498, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02mt_7ba00b00-b5d1-475f-a436-b628d719d08g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 189201 }, { "can_preview": true, "mtime": 1752200867.9043183, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02nd_1b7ac8fb-d2d4-4132-83fe-adfa8917cf2g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 108892 }, { "can_preview": true, "mtime": 1752200868.2689714, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02nd_f238ea58-c9ca-4898-ad2a-74e5db2ece3g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 197144 }, { "can_preview": true, "mtime": 1752200869.2239978, "name": "\u70b9\u8d5e\u6709\u793c . \u5e78\u8fd0\u76f8\u968f_img_v3_02nk_72371a35-fefe-48b4-8975-b339dc3ea16g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1959427 }, { "can_preview": true, "mtime": 1752200858.3065064, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mg_29073ecf-50d9-4883-adfb-19fa47f0ec4g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 185534 }, { "can_preview": true, "mtime": 1752200859.1539147, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mg_75305062-795e-431e-8ccb-42e97f6c67dg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 191497 }, { "can_preview": true, "mtime": 1752200859.553979, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mg_b7f3467f-03a6-480e-886d-4fa16ee5b9dg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 190837 }, { "can_preview": true, "mtime": 1752200859.9767206, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mg_df3ac303-0b27-4a0b-b8f3-b8909a91201g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 203005 }, { "can_preview": true, "mtime": 1752200862.6772957, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mi_0da126d2-fd35-4f4f-9091-10eb79c81b9g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 248538 }, { "can_preview": true, "mtime": 1752200863.0233166, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mi_43ed6353-1c32-4903-9106-dd6772b27deg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 228888 }, { "can_preview": true, "mtime": 1752200861.4963608, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mj_4369f848-1196-4b56-84ee-e8d987a7226g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 1983701 }, { "can_preview": true, "mtime": 1752200860.3129287, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mj_4a0c23da-5bd0-47c6-bf35-de11d1da139g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 195358 }, { "can_preview": true, "mtime": 1752200860.622947, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mj_5f2c3627-535d-470c-bc48-c54191534a8g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 213374 }, { "can_preview": true, "mtime": 1752200863.3478873, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mk_84a626e5-2d6e-47cb-aa84-76dc96c2016g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 227289 }, { "can_preview": true, "mtime": 1752200863.7331533, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mk_e786ce3d-a9f8-4b63-9e50-4dc4c389ae0g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 276437 }, { "can_preview": true, "mtime": 1752200860.9506948, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mt_0eb587b3-26f9-4d8d-84fd-6a67202dd17g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 161670 }, { "can_preview": true, "mtime": 1752200862.2933474, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa1_img_v3_02mt_8447ddb0-19c2-4a8f-909f-4b4ca7861d9g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 3991619 }, { "can_preview": true, "mtime": 1752200866.9438145, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_image.png", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 3238563 }, { "can_preview": true, "mtime": 1752200864.0634494, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mk_5df35245-00ad-40fa-ae4d-91eef02bf60g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 272372 }, { "can_preview": true, "mtime": 1752200864.3973503, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mk_f9ef1a55-d4e8-4cf5-beff-1ab9f51483fg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 205652 }, { "can_preview": true, "mtime": 1752200864.9006815, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mq_095a72a4-5830-4f7a-a17b-f318a326a23g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 983154 }, { "can_preview": true, "mtime": 1752200865.5876565, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mq_71e9226f-e046-4ce8-b19c-15bad289cb1g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 3102254 }, { "can_preview": true, "mtime": 1752200866.2468567, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mt_085593e2-81a8-4025-a28e-aa0346a2faeg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 227996 }, { "can_preview": true, "mtime": 1752200865.9390466, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mt_89da899f-be94-4161-a4e2-0830fd1555eg.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 165182 }, { "can_preview": true, "mtime": 1752200867.6018476, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02mu_8f89864b-05da-4c38-be51-fa278c55104g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 148585 }, { "can_preview": true, "mtime": 1752200868.641568, "name": "\u7b2c\u4e8c\u5b63\u5ea6\u56e2\u5efa2_img_v3_02n8_72720581-ab6f-442e-8410-b2fc0d86789g.jpg", "path": "\u56e2\u961f\u5efa\u8bbe", "preview_type": "image", "size": 207638 } ], "success": true, "topic": "\u56e2\u961f\u5efa\u8bbe" }

POST https://mssdk3-normal-hj.zijieapi.com/ri/report?lc_id=1588093228&platform=android&device_platform=android&sdk_ver=v04.09.02-ml-android&sdk_ver_code=67699200&app_ver=33.8.0&version_code=330801&aid=1128&sdkid&subaid&iid=529304741494288&did=4452343760029530&bd_did&client_type=inhouse®ion_type=ml&mode=3&full_update_version_code=33809900 HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive Content-Length: 11410 Content-Type: application/octet-stream Cookie: sessionid= Host: mssdk3-normal-hj.zijieapi.com User-Agent: ByteDance-MSSDK X-Argus: qEtvNkFvVItTuKQtbVTo7Kh1/LCHgQWgJMe0NoOxz3+D5X0rQ0gVIZZm4R/9kGTsDY9YcHt9dUxl7TiTgibtC8UgchWSmztvZMm+eu4MkdA+THhvjUM8NrhyaThMGOxKslETxNs78ZSedfv1TaylTksa2RCoeAqQKNgJoVeJU9UmQAHmYW7jKfukRQqNfSD8xczfZPlImIzPy7yEHVZA2pmeuAvRew12PmJjX1nEVy9wZPBGcB+wjAx2LwB7skrTbIJipboVr6ceaWROWkuwaWJo X-Gorgon: 840460ea04044a9bcd0eefaf7c562d398f688d55a67ab806be9f X-Helios: vSyKFX8TL3kuM8BAD1xfO3ixu/WRopnkeuUDqQ1Rot2M31w2 X-Khronos: 1752765617 X-Ladon: 6Cc2AJ50oIE9jwczHknWDxx6OB5MrGD7Lx2SoD68qi45UTHz X-Medusa: tBR5aJxfNqL4YXQrjqHXRJN5tT7yqAABEDUex0QOAUsNGG0JrJ+InqCjg64oM7ilMXMGbw1vahOSlwlvNpfVPwmiqu1bbBKq4Pse6DLXMRR9uc3F7D2mY6CfrXrv2k6jlHS2/Urp7LD+aFl6X0v3112kXxE3DQmnyzyluf9Grd+y55/LKfC2GehrfEWfLkIaRHTB0O1HCSxr1No2WkgBDu/xfK1eAUNi4RWqOy+rpkzuuHhssj71m3fOKtse6subMntCLlDjQb3yqk9F7nE5BaJGTjzWT14oFqYt+AJLmgNy57MQLw9B7utIdNTrpg6CZMgdN322UCxCRVrf59iF0GxkHR9vlXRZ95EaUnHoMZUg0RQ1G2KCAJWaOpelapOa2kIipxSI0zLP2HTVBoMaOVqk4XfKpSmYVBcGOw2WNifCf1wfm4JVZILog/xwsLQqpCCwl47EwuhUmMBhIejFH4gc6H1C0xPU1oXEUaxy2lDBrVqHBiD1Swjsx0yUjtMXIMmUt6OM4DPE2pnkFmljuBo7XfaukrNgTp00NehX0y7UO4fJNqFheMj5jdXGV+3P4RuFZPl8VHQuQpIYPaZ1RY7+LCqXmtQjDgZsGpLKCDDYyMydzEpwcs4MlAdi2HTXmNNFAqLFRAVJoSC7wl8Mirof4QSefoKNDS4SuLlFkjtOERFc+KUbB19Z1TPmM0H++uv6FVNZNRsVw8hgbOvMby+0m3WIPsyyTN7GW8a7oKwNcK8oTm2obKa8PhsQ/VgVyUxhJ2zsV4qvso5Xrn4i1GleV1x/N3UupDVsYIPUzh3hZS4pOjOB4d67nYVRDfQSbBlHFk7b3g0zqc5e7pmNYvZDVH1p3BsOdkwnDqtSxmyvuf/8r7n7+Gov X-SS-DP: 1128 X-SS-STUB: 5686231EBE284E99C98464330EE4C5B7 X-Soter: AAEAAgEBJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA x-tt-request-tag: t=1;n=0;s=0;p=0 x-tt-trace-id: 00-18f8d7330dfd162103c075a72ee00468-18f8d7330dfd1621-01 x-vc-bdturing-sdk-version: 3.7.5.cn 08C4908082041002228059EBCA6D0A4F94EB9DDB8F6844A5FE3E3EDC71B3DC91D69C1BFFA9BD3297068BE57CB59A6EEC6E68056DC076685560C8CFCFC88FD7D12C5E572F11168463AAA799F874859CDA61D6B169786851EC6C9846851D57030DD684776C4DB5B4EA5C36F956558427351F92C239BC830477C51FCC2C55F810458362AF22096F7FEBB63EE7341DF112C982E198CF8CEE5C300E40CBC428E4D7330718292A2F1746D510B7DAE599B98DA1170446BFD490B844BA7B4CEE065D08E5901D11829D7B39974B00D290C911187367F3F2B86F7EE35C699947D33AAE426EA33F77AEB90761112250F3C0790281950FDB3A904F786417DF7BDA571D4FED4CB2580C628E263D349878704CBCA40ED0A7B5B2078462598CCB219B16554E2724B9078737C468F7BA40F37F5C2CAB77E44794C3F17AEC3382CEAC7ABA1CCCB9D07957AA4158F8CCB699E8FF77BEACA11E07BDB02563FED119478BD39F12FE60A916D8C867D8A7C93CA8C4B1E46BE71FE8D233FE4B5502CE011DE993218BB47581AA69BB5C10A3F4CB8F49286C2A2B41783DB6292F310EA8BC8055362FD8BD6F541E2361D4269D6E4EA8D6336FF7B2E1C30964E9E6710F96C0623BFFD80831E578D84E6C626732C5B71E0132618BDF1E2D7B18C2FFADBD7C99D02900AD8ECBC4C6D659A6C14F345D69635D1EE28DB6707109493E9F87945BAC3DED9605055752FBBB0646491055FCFB4AA5D8ED78DE0F15064170CA187EFC465EF99F5DCBBDE81C27F522E6EF4F3D935F08F4B91DA729079D8688CBB3B167EAE682504840968505049B960D703E1A1CE6AB9367C990A735F014DDF24A42FC2C774DA8C0649946C6CF8EC7031B1003C2A6A1D50295E55DB251AF75D37246B6F961D5AA66687CE1AE09AC03D0873D00CBE0DA15BAC2F68E72E35FA94D23ED3B6EC6F1C07ECA4466C58AEA5107FA22FA9C0AAABDE7008218835D81D81BC3F9F19FA5C8632B15343B43C60706ED1AA043D527475CA5E628EC9CAF07E48144DE04BCAD91110EBA55E31ED54748E3F9F435CBAFDECF8695F6F364427ABF13FE7652D4561FF90A5341B5DCAC46A08C462EFC164DFACAC62206C576A66BA2188A0CF5DEB473154F8B52064BD97424ABDEA48C9D1BC91C6DE6F3DA7B879D01CCDE34EFA00BBB8DF7323DBA67C29859F917D72700E670C80953B63B99431191776CC9BB37F1EC791003F4D87FCD49C05234AD92B194837797F77C172B6A462078D7007603C1A424A5CDA8701828FFB568837760CE47DE889E55263FA105A750E426069CB3B8F20F5782D938F323B0B1ABEB8913C739887F5B8916259D690C2AABC8CCFF97AC852B5C42146D1BB70C616A0A867655B1049BF63D35E39AEE0D52C891DDC2C1F6970A9D0940AA204008120CAAAC00FEAC353A7B30EBF66E0B1470C64E64C49F519041779F94122A4ED17F42FF19AA3C546B2EFC63A1DF2D7543E92CB576E8C7913E62DF5CF7B4F231FD2B0528FB8240C37DB1FB927ECFE189B15D002644AF9D6833934F74E79EE5A97411052A68853D5E3C6631BF0E03561FCC0173A3D1E8A26BCF6508F4874B9859873097FD7382490BCBAB87D1CA672A784E2134E6F2B2639BBC6229D1DC798CFA9B48F6AC4171A634A2C86DD91FF6153C86C24D6FE22D262D739645E3D462F8E4E46403E1BB98C983131A3FA1FDD86CB71871F71464F5DF724B2ABA0B76323B1F701CC13E0D5D0D12AC9D18AB0355E55B9833FB00A51C641DBD50004D8E76B3A18473A68A7D12F1EE2F18A70ED468D99B66B0ACCD74D603D8B295827EFA307A88309338CC2A4D0C3F5A9DCC6EF233B7C227F05A1DC00B3CA1C7EB5D9A3FC8799D3DED6A68B7EB7D47CBA6179E41FB899ACC53765646BEAE4590D9A4DCF8EED27761C4B29EDCF0BB7F90FF25CF8CA2FD7C3785C51A9AAB2DC9E971F705C2DB2B0B6EAF02395EBE209468258A973342787A6569D84E377A1519FE646DBAD3C5877003AA69326EADCD5C0FD14D05E56B3E09C5BB0C73AF56577D929E3CE241DED0BD85AE0A3DD547C6C0F41131C60CF5C6717BCFC4BF09EF996C58FBFBCE636A85E0E0DFCFC191DD5B3A3184094BE85ECB4165ABED4E5D3316681E1261C62C92F5CB305FED4CFB281B69A33672CFBBC15C8E3648BD35B5760C1B4D5CE0D793620CC1BB351D48B326A9EB8703669458D6469F5C7507374BF9A73E9A64C4F327BE60DCD57DEA428FD1EF67DFD7CC2B4E02FDADE7ADA885B9B180FACF133C38F5FCC367DBEF71E7A8813312A127B6DCDF9847CB1FD74165833AC8AAEC0AD7736D8C8FAFF8CEC1240EBA97C60BE7AEBB52D1BBAF0BB3585A064B0BA5D5607BD741167F67F0CB2344A8438D71128ABB1727EADD321C011D34707FD9F171EC9F47C431D4F408881DBB945E253FD4E2C880E1A6B07A66D4080A81A1BAFEB94D983898DE1F8491AC9D1A81D238E160E9D424F3FBAC1E9B6AD071813F144BB8A048508EF679F105FE6ACE9645B0983F355AAC9A6072BDB391FAE2731151093C96D3AA0B3328038E9E711A41AC1E06733F0983058D53ED80AAC7E1CF12AED090786E88F6239A1E4D40D95880EF015E65BAD0ABAFB56B80A588E702449F755145F7E84EF9DA96A4901BA8BB7FA52AC54C02CC953ADFE87FBF3DF935D62C8E724C94DF2BB59BDD6770EB364E3667784F8C0A57E0160A33CE3145E1826C672C2C837F576A8C8E3669810B81F1548D3F7020B66B16A238EA71E7640CED59F7009CFD4B60C1892416BF9580FA2A9829B7794C3E1CDFA2319B97841C3DAEDD9F700CD2495FF1B6B84E90322C95F49D6711BAD25B32EFFCC377DCA2BD422A5873B1480B5C90E9BD17AB14FC86B0639CE5DEF5D4A8FC9D1A3444E4F0FF57FDCB843BCC7BD80258E9F17BA38625D108B00B8EBA22754E78B0DECA4DAC84AF68FFD8F3E7ED7571BE139AC54DFF76707F50366B0782C79514CB3CF58D00294612D2386989D1F40135766A4273BBA794566BFD041654CAFD1CA5FD7793E367A73D812A654DBB7CD0DD2CC9C4C74542C1E31AA9C1457022C2831A84C59A72161117A18426BB5F14F83E7B633126A070BA8503B9A86C9DF8571121FAF83245649187EC1DF1875F6192C351FEE73D0BE69BD6C9571AE8A8CB58BDF39B64B808260DF1B2C92D293CC950F23946D1851A1E1598B36E19BAD588F762382ECEA3814F2CFD1F356D9494A48F14904D19265E5AF34807BC05BFDDB9F07FD0AE7D2E57BD326A0F08B5DA96A505FD79B35BE004A9822C05AA9111E344911D1A5B2D5C3BC4E75405F9A9187E6FD7E05BF18819A6BD51CB0FA3303DEEE4F644E5A1FAD8B9474608C44BF8BC5250739DE3C4BEC5495E38DFA2363A0C4E39B4E4A383106583A48D37126F02AB8A62BF221C68167B61B8D021B37DACE4E263833FB065082031416A60B3B6940635AC2A9A3F3550A1305DAC6093168E402D8830A6C8322212576341FB10214D9E78CB58934C6A6D4CAAFAD10B83D750E5FFF847D86AB83B1AE4EC0B9B06DEE3CC9F509E408C3BFCEB005A16B72D0E7006BB7E3F3630CA93C67DE07CF06EDE5042DDC88DCCA82FBA64C8E05E16C59993E03FF55149C656B8A6E10CF11DEEF097F0B8F25E0B016B841983C595AE9F3BA8225E56728082E0320F440238FE192FCCF703D8C3556E91EEA797C64747AAF8D60E3BF8A03494C5D89375BCD4D6BE1831DB682ABD906B8F35F8C9237D1DEB3BC3FEEAF62F809A356371BD45DE5323F8812AF04D99D2AFFEFF8140713C9F61212A2311BDFC9BBEB8325257F5783CF79AC28F535EA35E6F8DA497C5209B3FF756CAEF81EB9F79CF2C388A7FEFCB603890A91E71926FAD56870D062620EA6DFAE704B548947336D1651D2B30F70EC7E61B508013DD53C1DCD9668CE6A6ECB6D01184FD0409C849B007ECB34824FEC8FFC2987842A173729FD30683ADF30F1791FD3FC4C40EADF8AD6A92BD2472240C8E9F31203E670383BB5CD1091FA412BC79840552719CF97B44051383DAE274704BE3621D6448F256036AB9F4D724E867111B2B32A076DA61CF5AB47A4BF8E3DB85E2F029F0DB0B4DC331770207D63E30673351BC6AB8F8925785795B0DE8C5739198C3F50D206BC097528C300353424AE88A8AD0379C44047579CB225F5AC03A2CCD75497909DF1F643CACBBE1A07AD728AF095DC09E9949D2C4847B689CE5FAA3F0A6DD6B6024E9B9635C67B812BA92B5759F7889E9D0609D046D3A4CB8FA5683ECA4E71B8731DE59A9B50B60247B9F14D8BEF61F684D59E0F8F7239FDBDB3B039E71ADDAA536CDF166577E07AD8DE3263EE93BA15E32CAC2054FB2F7D89E5F49A9E1F2D30CF5F83C911423A93EAD23FBA154987BAEED7ADDC55E5E4B7371FF3EFB41E957275A395CB4EC417AAAECDD6A98D1BC43C390018C9BA73FE3508B86F347E55B49380CBBB1DE249F18150BF09B41B35ED84179E3F1FB241C7F597803ED40C26F6C823B148033322A1B82EA55B4AB24456FB1BBC50331855FF6511F42FD56C5A7459808E382212C6731AD2B8591E9457F576C1B8E54C505AFDA3C3237317E32C5AA01714213761008DD6DE0BFDE31A45045CF9EA34AF47FD70917AC7AA30EE72D0FAA9A511326B74F268A85F93AFEC7008C59C4ACD76AAE73035B0908E6EED8B5B56C2587601C5901CAFDE2292BF53A65BEB66030996ADC15A16B8C26A23F5D278F36E873DEAC3C81EFBF3B49591DA698B45F8EF8B4791956CA0A2F6A5D0413211242288D59B3F525178453812595104E8EBC89D6E099E15FCCFD0D0FE027E6A0147CC2E6B932DE6471BCC01DD40D210E5A08EF3A7A96B66C9ACE1D214E92101EB9F7EA98BA002F2493418EFB2D17A789B685A44467653DA19CBDA9B1A4CFBAE84A1CEAAEC9097C4E3647757DEE3B72C9749C31A33104FA042569BC09136DCDA9485B59A3583E0A8A40D84032B72A83861E0CEA452C32B9A166EBAC34BCAAC0A19182C9F305468EF27F466E6D45DF398912933975136088F721CB358F156C7C97E82BA13457087E112D397D36F34606A73A4765C76E563C949EC44395FE35835ECDABF19C69CF04EED2C2712AED4C170C9AFDB0681FA28A0B33ECD9DC9BCCEDB456B81B991CE2E8370480765B33DA05E582DBEA9212F690610A436F69B74A45CEB54AAE69430A922503C04F1259E30EE5A3E95ADCEBC53DC90A7EA7E01AECCA01B27F9C3A549C5F1F0654C211C798890CFD445EB08E19F6299B0336BDA5088E7E9A3D971ACFEB6AD3D98DFF5A2C5AA5E8A55A795A1834363DCB28101DAB8CEB5319F2C6B9C9C8967FD91BCA522C8CB6CAF83CE671915E6362B01047643341006722E6897F450B5DDC893E703E75EC9E226D1BA2BCE52F5199489C6EF1E7FCA37E80FB9C77B75524106693D083831445DA5D039E09BB341CD142F417BFD4E24223F78806534789EF3914CB10E56DBF5D5B3AE2D16F03139CD6BCEA8771595F3050FA028B17B7B5AC4BECFB820AFC8F97A9B08F9A8A59185DC7D245258F245581235B185DCD62619C08F995600FBA23C838A803E13D8B5AA80216779260360901C4EF89A0BB063F95CCD88BCA6415A0BC3FC6BE7CE5F4552B2AB0F0D5EFB3BE2C24AA970515923201D3A5824CB11BF969904CFD1D430D3AFB0D67751453565A8F2374034447368FE304A3C44CEA9B3ECA58F913EE46C6D5650099931C77497AFC4202974342E781B4987D0180CE351264A99D151253ED04BB6BA348CCCE05806E6FAEB805DD397807F82FC27FCC96B1517E212939DD61E19100D519E1F17700899600AA16893DBD0627924C2F6E88E7CEE2273B39972A231F218966AA578C0EE863E771B9E471503B8D6A9DB61C0BBEB49A547FE7652695B7248D8F988938A868337A7D8AAE04F48B37DCF97F7C7A2C0E29E786EDFCF9BC1410780F53E8F556E052C332C6ACD32617A152592B352AB0EB92E689E8CD855CF280F3CB120C78969B914C2C1ACB257BE1759EC60A41FA419C9173C4903AFF10100C19E341DEC3981B13F0A2C626AF086A484DFD968A8702179009AAFB4ACA285AF35461E64E737B1768C3AF1B52F180F4CF89188224F0E8D8BE8F55EEAD75BE5612463C8C6B4ADC7E205B6B4113E154C870EEFE78C0B99962DCF34CFCFB3431DDA72D07B260A24DAA7C6308E90F971272C5EB1540D07AF62AA804F10F34AFE84209D0DC0A321751C88B1C9912A827AAB77C455112A3F0AFE78AEFFD301DAB70F08906B131117F442C186FE3E9ECFCF8528133FD874DEC36B9DCF03F6B5A36DB72DC32141430ACE042089C9BAA3B6C3D01CAEF0F7E935712C2C392403C7B763D79000C6E804D81D3C640934C9F9A9AC9A9C8A9C34FFB841FEA7F4D57F07E906624DEF4148C934BC8FC80F7A2FD5D4E08C69B912BB6E7A66FA0007777EC24E04964BA16A4EAF0CA5492A08B6ACD91D8574AF7864EBCE97F0B352C1771E2608F9774C64D20FE6658D81DC449508EB7B69C2C23D54E3467BE10F41069B943AAD5E9C1B228743681544D6EEFC75201584DB35C434D940500C9FA3C18FABCB872056B6F4B4B11C6C8F4AF830AE5A04076B444AC578FF5EA17BF3FEC762A4E1623AD1BFBBAF98EDDD20AB7B5644445F80DACA38D1C7955BE98C28B4B955898D828782DDF51E1E03A7DBA788FE66BF977B18F28F68E1DFC90ADBECBCE99527C647D3FFF903CFA2A2DEED2F7668742C66F8FBAF4AE685A40575117CA93C716466CC59746239193CC5C9B54363C0485DF2BBA94AF5E841FD087C14E2E5FF423D5F5F9EEE3E80B12607D0414DA3F8CD55546D803A66E23EE35803918571A775E11210B806F6AD95D77B033FFBC46A1DCA8A1808C6AB91EE9A75602BB5A2A995972D062D18D638F64A9C1038679246FE0FF923C4B29F8759E249347B9A5CFB4FF65A8C6ED956E729593A8B2D061E06FA7CB08C3CFE2D46B1B6E391E12EF59CB1D536DD27B268AD7D92DF0B7326C7BF22E78B054E3131EF7BC72F8A191284A267ABD83F6EB1F2F81A80805009BAAC67EC0C2796B192DD1431797F30C7EA64AF7801F04F3E41BA53B683CAA8379EFD08731CBA175C54C6A033B25A7912C59A52393B8F13832FBB70209A8216EE6EA869B146A748850D4A22025223B591947B32F68C72BA7EDD34A04B993D829ABBFC7225003725F69FD5CBF60AD975D2A713F400B3D3E9EA5169BC5303A18218F207CFDBAC2E5E3AC9E066F4AC536C221897203A667AE742EAC2D46823A63DC051649F680F3F8A329DEFD3414F8AD0EF6DDF285E5A08D27FF9FCEF00877300234A293A247652D11152F1EFD6230233C19C587E9875A5E8815030F9A53E7A4D6ABABAAEF7C9CBB586A726D5D8B40CBEBFAFC5A2ECF3B2C560BC7ACE4B1E2F84C9FC83C2E02665BCDECCE8E21DBFE979A71F6AC4655E82AA2756B298575653FD9972EDFAEA62D4733D57AF8966DDAF856A05259B31B6CDA214E709B42A8A36A8728EF181F893F92A90CF34A70589F19253BCDF7CEA21DCFE668539F68F9CEE1F87F2BEC7FB469327D6EB5880D0A6540AAA7FCD3D1A5AA1559B53A1B75E408A31B16FB6147346C4FA21611F3822EC52B262294F724946E234B456F809B79C98BC4F4EA4003F5999A1140C6B25A29B0B79770FE6BF5325E4E4E4520EDDB6BE7493E50A4E78235894F8B1C413192B35CE6627138C6E420C1E577CA840CC062EDBF59B0171F6A6D2366C29F73758FADF8C8B4D7CCC2838D622471D371045E310FAA9CC5E301794E1CED40FD1A9517B2139F47918068B08A3217EB592B72AB3A85FDE453F04CA634AB99C97DDA34247ED9503209E2ED06D635050E7556E31CDCC9945C5894011A3936E41A4F521B1ABA748501A8352F5D3984365EEA18D1F38B190CA4CF5D1786CF74F37A15CCD80B0293C97EC345C1CCF671D19CD896C56CF5CA5D93ABAF915E56F0389F78F4CC2BFD2C6907A85FAA74BC07D031944849E5C27A076B19C95F5D9B078373E13C733E34DD38A4AFBB9EF701942902E5FA20093122B38217B453E153DC75ACF2E9E064439C437698655033EA69235B1B89A4C4D539DE327B495DB9CF4881A70353559611AEB3387535DA9948DA1166BF92D93E3E957E2671A324A1B6E126AEF27F48DD138EC293EFA408F530A474230E05130287AE811EDDC7D8C2E409DEA622AB3ECC0B1518DE438EA26E21EDD000C5826A187802AD6988F617C4A89AB00CD56F2F84B73F16BECD70118A340471BCFC7DA2FF23D3285F1360B51B3055236441314F819E80EDEBBE74361A3236E6AD04CE524D81E40958D4544D56E1DC08DF0593D5D84784673005E38951CAE39D79D8302CD32288E83B15CCF3338C753D200208E163C12923E99E170EF87354821E4D9F5380B9BD9C4DF51EA92D81767B539D16EA1F073FDE92115AF4C8326B2819024BA9276A85BF482D38B87D9B13DD12E96487F7519DE065B9268A8BA981D67D1F46778DE34ED46A75EC44AC75EFC16726C2021C6B5396CA98D41F1308C3F1BB50FC126FE78822A04289402A2D5577D803051EEC6423A9923FB45A93967CFD8E76EDCFB72A61F954FE0A71EDCCC41D3AADC06D2B18270481F9AACC91186D2B9C40E89D3947B0BB36742153FA77E739899CA011EEAAB987DA9DAB131A7CEE999F70024C7C7CE672D2EC9184BA9506AF0002A28560E7BEF31296105DEB33C87421C89BC2FD250530909D21802EF3AD983417F0C1C21CBE51E7B895EC77ABFD92C5296A8AF92708F38B67DBE3D37A090C09CF9ABE63BCA88FDDE29F14BD9D30DAFC6222B8CCB9A3488CD546B963469C3D09DF932104705657EA8BE40477AF239C02B7DC84EACA5CAFC67B6300905CC0CBEAB4C1F9162224C96A03568B50B2E0E757EF40169BA5D43E7292B8D336FD33F10AC1E52F0F1FD419E5E0F74B2EBC9219C5E1C48E3FA54F5FD5FBE27603E3944840BF920716EEBF7575087E35D55A8D8B481ABBD14BB0A9D5AA9F4242147181F96D4D4B8E22116284017EBEE36E19807FFC411A3E48DF6DE9F2D9B78D5AFF4D5B33CC0C0953288D3459F0410D97E20851E8B725A3D4AE44DABF96910B4F9E667AC29189D1607052C628552A295475DF485BC65036F83D176BC18AABA9DE55258DB7CF1056DED09142C9725ED8B18669288FA42A3A9631E336E53D54BDEEDA6223C03AAD999CEFBE608DA41C9174EA7DA21A0BAC7F25D1C7C2897D0E992A2336944EB8B5A3005A654E75D0155A37D33A7751939BFD9B1A87E705A1CE14AB3798C6950F96FFEC0D31F942AB0D1CD9D44A91452294024A215294C71E953C982345B87E2F976BDCC026DE4EC4E2554478AC3C4ACD9782F78A7EB89E4A5E6251AA6163A7C70A91918E7FDC64A8392C98877B7135E8ADAF4351576504427535738FB39BEA36B89D7F043475939524385955F6F216F9DB11A704755AFF1A8B5DBF6106851AF003491BF7B7EECB10862FB8F69AB5BE5718289F4E8393A60475DE98393EF3ED69976557321B05B8E9BE91870ED100B583EBFD4131C0FAB6A875E34ED4C635D9AAAD39942C5D877C3705C8E15D16D495FC882FCC4921F69B16F9DF9BA4DF8051D66CB8353DC66ECFE3EBFE38E8B3A82E195939477A1A1ADADD7CCABD947004263D37B752D0DB16763440F26C587A26B9DC4ED40BA137B87584EC405353A7D28429556BF52697ACE6DD45331982FB8C277DF21EBD77F1FAC50BCBF3908D884911992175211A218C55AB98D908798534B810A1F35BB486D9344491FB9670F6E39D6AB30D88D2ADC2FD8A870CF32D0ABD23BA56827996AD6097F7C46C8BC61D1CB9CABFDD53CAE9CA72E8843F3196C33A5E8DD8F32C508E92E653F62293B46440DD569F0665F15D5CEDA0FF8C52899FA0121AAA5501D7EDE1DE3B414B64E9603DAB00D6A1140ED2E4079992872320EA6CF6438B3745B3DC2CD22CDAF2C733DA133B95B1FFD9F444747DE7FF4B3BDACD4CD7F01062E5B173FDB2BDAC53A1B46684888053996BF759ACA202AEE8352B1A2B7ADF30A0570D79EAF18A3BE119ECE66177031BECB42C6A444D5C23BD269BDF1AC8C54E47790C84260DD77884F2F1C412E8B4034E2C2C910DBE3D6F60D5064E1EC8076A73BB6705B8E3C0BAE2C1D231E8280F400D005C538B9BF12855EC9455D1146289BEA704E4BE119825F924323F09E1A429F1BA1686B0253618CBD5BEAF95ED1D666DC764FA9A8A23A9F6ABB0580FC7A2E74A9AF6067520D3F10B752BF1E5629E70760D79202BBE2170400A3AD8BDBF23F5F1600B8F4020737E600A02520C6C85224FD053708C05A16CA53A5502B1AC0C60939057E7BC2B3CD06A32F5F30AA5F320842E7FC9ED932DB723AE9DD6731B579D3EEFFDE67062ABC3BB65D2AFF378C7892145C82EED80EB9D0000516AC2902E0CA1D52B4D2C9ED6ADAE7F7F720DCF5C8D86FA8D2BDA1A5A09F4F994F05CC290C297F84FC8D372AD2BF407F1F6707C74E9B355DD3D3CDCEE2EF80B484CA04C6CE51554D248957AE1AA04B125F376A03ED41B66B8E0C476FD8590CCA5C6E31D411AC1D75C15CE1C833449BBC66EF40C7D7C73985CEB27AA4CE02BF3F4CDDFD61DF66BC6F0D2BC0BEDE07964A7FCB0E077AEF46A65BDD9D82A8D2B8CB46E26E90C628CC67ADF6C5AB61DF42542DB094B348843DFAFE3AB7D650069910F675C47B0DD11D17327B74CBA29079A10D04B32EB35914E30B6717A07F30387D93031DEBEEF373522F844F21D51FBB04B1F92C63128F629F658E5A1E5615212172EBBC59F76BD588E94DD66AE5139948A747F50DB0593FB5CCC9049F1FC21592B375DE742AFB16985F5B10B964BD503A79BE40F9D7E4A00CCED8C822A556A993F5769DBF03C18B91F00FE875361282C0F3A926113C7E1CAFD8FFBD34E6C245CC0D272743488E959CB44077A06594346E5BC38E4A7FA2603C109B30DE4E078246D8CF8113CC8386075675FFBB4D51743B46A75809D1268465CC3D081094F0117C316462303210CB2DBD3C0B416DC5E349962A2BB273B10010FFD2B54642EB8C5A6085E5BC79168C2B0780168CBE837B002C241E418D290AEBA90F909A050FAF84F54162E32BED42CD56FC96E0DCD17F6504670E2449DA40A1BB7334AEEE604DAACDD22B2A059CC49F8B3D1042846BDA8C1A7D25A5824D634699448A241B18A364A50512C65402E8E356549FCD2DD36DA8C8888CF00DF7CAA48AD3CB150CCFE68E986DEAECDCDF540A6F70685B4F1FE46907984EFD7AD7C6C79728771C4C2FAE85CBDA072AD9F4D2E9CB449A91453F99F40110CBB4CD4408C7C26385B5D2D6319BEB9177C9DBDE48D5067D1809CFCDBCC7E71A7F2BF5A69ED21C84D519414923A42ABADCDE7B1AB067CA5F6E19F54D632C62F6215058A7859814E60598A59CC94E4E5C6C86E2DB30A1C486F8339A7A221D8AD8148BFB4E60AE6B32FC611FA713E4BF539F9874859F3235586B40A213BFE5C5906FFBDA1C5D2C64F3E83EDBD8DF841FA36F7648312077F52E05D79BE71FB0F5E779B7F212A4C5F8ADFE95252BC9711AA7A9B88A324A88CC9EA88887806078C9D88938BDD8C46D8167D00FA3F0A1629EB634C0547D733358F1BBE82B3F1327446FF4A8CF93CB50C8D0D9C8E5799A1DB3E1A9707C8E054D7CEF532CBC26842A2C01BF4EEA989CDB037F4005BCA263629F200B26450D0B3CCD13758A2414BEC64A6648682486279BB624EA75D89056048ABACFA78FEF97AC76C6AFFE9062624F5310D9F570204816095DF754024F82C4F959E3703696C3E5B17E42C071844E90535FA9E9C243E9059A8369BD00A2F9B163A26DF0F13434125B95417023A0C13AF937A6495F6E65D0E879D779CC4B5C219A6EACC846049D91B7C0D2955E2D833EF39ECD568685CB2629055D39AAEE2A9D3CB61CC9DDE0391D69F88746D8E4AAC24F357E55C0379C1A546010BD37E2120738AC8433834EE9C7B4F7FE7F3021091F9289DB043D12749862FBDBBD9F6E3D3CCDFC76B488E2BE8CDEDB40D94FBF4E36F6F727D885BFD86AEBE7F8E3A0DBA2EC4B52A0C8DC1B43941CEF46A04560AC769F49245D6CD6EDC41A0FDFCF1C115DDB1CC1813D689B7E0AAA6A5B9E5B5C341FD0D51881FBF31BFF9C33637B5919BC75BB34346367264082ECC198B236879A8EAC459D83D67BF70FB5B01A7BA8740B4650111CE38C8B19248A1DE38CFD4F28E5181620D2809E4828CBD76ABC8CF722A63C98EBCF442854AA6CE7B15CF83DB63D5A7361003069BBD10EDDD6FC2B572D8C2FC07F33C3B14B4D569370F7A69122DDBC808490E739771BB916E4D7FA4310169940C9A02A0153888733172A1B4B105D0A7C08D0813A9A7AAA9A0FC8434E3655AEF1D35395642C797FC4C1F95277BEFA8B2A67C66EB218B3902A0C9ED2FF99BF1E354EB8986CD08E4B82D581171D57E43039FFD5AE7EC58F3FDC28AD48D70E4DE91FF0210624ECD0C44127F582E2414F72D80732C69485AA146181B6289D7FB3E218AAC1948180F69592553E9E8A126D17691DA6B4BF73EC81580E2F47A468B1A1D894B36419EF2940B9573D626E70159A42F464E3CA84B98E94E4BBADEAABF90F1C6FDE7687D5964BD7220A5E3117447EDE3D1ADB32BC90B84F2E3D6AE33A64246F47E02B70341CAED77877852AF4FF1F8EF54D7640274105D9807D05733C62C3F0C3BEEFA0106BD771A0582E186C246F28C47E60897AC205B499CC8BABD490DD990C2281636C9FCD96F6B447BA33A11083604FE315A7519842AC9C7FA4B7816351E51B2FB2896D29B19D4081EEBA371C226A7AC8390B2EB42949FE3686CA1309834CE6C8074EE8CA027CB2C654320D6CCE5940B45872A6D426076DB0CC5D6CD84CA2C0C3B537F1F03739EFAD4FF130F5A78C3C9554C0C848854E4537FE76090FFAFAE61730B4B511D462875435665CBAD9ECC0ED35F60DC80469817AA1A73C53EEA51DBA64C22AD413F5E426E1DD5F64E5E4AA24B6690729BD0CB585416F4D961FA448DC2ACE74473E60B44E0C0752599E490F6C00ABA4BEBA813C772191AEEE2B9C9AB7D44B0929C8CE948E2DC9F128FE8B2E0F81CAACB4B5117E65CC612B15F4B0D06A74E9FB8AF9C32A72F0ABA8E3715DC2E4B3F8C5DCB6AC454456F6C8B268B10658B2813705B8D6B8FDBBFD6D796B436623F0C77DA4F39F62693A0E2893A2C583A540BDA214EB4B9DEA82D99FF660EDFE53A085B22EC3C69A275D074B5D86329313BCADE50D1689AF6BE05F412526F9333EF06CACD6CED294703F755F91586CE390B28D3FD14984743C554E034B5460C5E97D85F13B54427F31F609A26F09F6FE73B47E83D9027FA5958C348A151817DD8A66C169526A20A3554DC7E695DC61D6D77978F9E29DF15BB8FB4E62B00B1AD515AA0AB0A74983723645A53613FF3EAB6E3DB9F64D4A9D9FD42DE36FB41D69C78892CE8FF57F6BA824C10EDA00F6D94E9F17D6450E23CDDBC9CE56D837A798FC6EF7FF19C439EA4A3F654C9983ECA73A027F2853D426CFB5D3FC978524A3DB1765935E38DC1FFCDAAB04BCDDFDF6EF0A75AB8D1E57413A85D41FDD2A46631F6C85C97A8218F4A4882C81B28FCA4B7DCF7F6D69A4787023F39CE162F761ECA60970BB66025B8783B4BE00670093823A9F922ADD9BFBA92C7C700D73CA90316AF554A776F881D275A93D4638E9F477ECBE3835C09C02B71CB7608A533B2E00AADE6A368DD37B98F9BA6C008D66CA7A7D105B48DCBD6B4EE8DB6248F12C844D574E39A561DE612F89060BF1FB2340C2B9E08BFA856917FAC7318425185552575DD6313ABE0D335818638D950BC37AAE2C9153FCF6DC032C8178B415857CFA66BE156308FEA7FE25A56C7FE54C30D09FF76BBBF01E2EA4ABFDFD5696C52660D862959D38B54423371643893D6B8C264F87B9D7F4E4C27BCAEABB0B6EFE677728504C0684758EE68A81773DE0F022A26403F24540FD681D2C0AFAFFA3E5000EFA658171627D1028D0B23D54303597A0E453E513928B0E6E0A82BB9953F5D4C079667EF2E953B141DD8D49C66668CC32AD31D3B5A2C043C36F35A3BB278C7D45A255A39EBBB3AC3C85F6F5C4EA7DB91DF66984A5872AC9D861E8A9E1CA0FA82F25AE2997A497AA67031528748C6426AE2CEA2BB1FC18B87B5F5C20B8ADA8A6905FF6B9C7BD8D4ADDD6471BA09B7877CD0EE487602A2AA97CEA613D95AE5A145689DE6DEB0D09F381F3858DC17F30C8672EF421E9F899161623FD642ACC1D78473CB14C148786B8EA6F7028B68E3A3B75950F303DEC299A24F442A717033C45AB8F6CA06F17E8CDB81A815557ABA43B2CE826B1E1099B10499F71040DF2FF8C349CF818C2FA1978455702675B3BF28584175994F0A42362D87F511EC9BA25B76D43109EF97F59478EED0341720F3F376908039BCF2B2DA60DD38E5A79B921593CED6B94DCE7254D2E0FB19C1B6F99292C765CB5AF84F38C574385AA8138A99C50C64C708D512ED3A8EEBB314CCEE7CEF319355224AF79B32842ABFD13B5B5587D466318B9BFA967FDCB93180A2A155F03794059FA11112791301BD0E7A841634440723E8F2635C617F538E5A86BA4AFDF240D79D8F4B68D0C707B830BA34E7A6A3EA621B92BDFF4ECD6D8A20466C290EF25CF8868D0AF322EC1236A2EFE7B0ECED9D49B4712CE69EF3C24131704A664BC35E779F0BF4159D607E29E77E88F5698BFA6A455BC662289D92855B5CDFDAC35DEA0937E82A2BC3149F443035B0C567EFA78008BF7B6B4CE637EC0EEF831DB08D7270EC4B6DDB01CDBBDEC381D385D708CA583D5105F241D7BCEC4CF0C26AC1AB867C63F8653459EA1154F97DB240545FF8328ECD0B85A85C02D8803E5EC7315B219B22E69228BA846F8458A5623308BB4387EB7CF030D88DF21C304159258B8CBEDA5479588775FD54F8CDB4022C10ED9CC38A46625C0DBC59739BE80CD0A606B2206B8F69F4CA0ACF0EA1263FD12BD2FC396A28B24AA878AF8844475C5755869B44FCAB25A4B455D5B4F89BA1D77858C65C2CC8BDBED54E2B7F970AD9D130DAC5C482C0128A359DFC6CC4556E4AB95FBAD6BE025639CE2F52311A671831E8A8CF9C3189980B86DDAE4E7FFFB197E3DC0B86AAB8709AEEA8D4E96EB7F4FFD2E349AFA0DE3D92FB79A1126C1F9D68745CBDC61E5C9C1DA9C389D10D24397BBD9B9DEA2F7B397CE52E544A5D54F8208C3FAAA6120E6F0BB6C1134B043F20F0E637051BCE218958767756AF0F05669041F5BBE9E8283185FF8DA8EB384B306C141723C792B010ECF78FDEB3DECE10DBCAEC5653440E7CF8B5A0D468A7F276A8D7189C82FD09927E0E0C856E1E901D971DDA45EA20ED52960B67A6BD9C79524FB2A358943AE45FCE384E29E2B279B6F2B4934F00D8A288B6243FFA02CE7A5B2F7D05473CC624D24F186855D9A99F6F053A3E5E25C6EA1840ACA356FF9182CBE283FC4AB3ED56D1BD40754DEE8E4145D4D59776728654B05E0349838029C7A8F78045BE88B5C7756ABB1A4208B97A2D18568E6B96C6C026B00C5FC7919D3B58CADBC19BFB98B127851C60918AD868C7711897CCFDF6DF64F6DF0AEE0AA2123DD74AEF203F26A019DBC390C9DA8DFC53E94061357E29D53D2CED6F02DDC892B7A16E8635A79BE8B4EF7ECD3D7E604C5F7C8FAA86D8CA05614FCD2C0CD97AB3AB2D5BA5864E058CE9415AAD655A8E6BB6643641ACD3ACB9A837D716BCCB784184AC32E7ED5401126E2A6723EF81CF6B783D71355E695CB6260058057B2740844B3F182D6C7CFAEFFAD0F9138532F52DF5A9127913EB25FD7D6AC54AE3913057A60451205C0423A5724BC2B8DBF990FE496C0DEAB42FABAE578DDBD60D9E44B27EE6D9025740601C5494CB9D17E666EB370A72A3E30A5D79A27EC54E2D912A8DD51FD33ADAB1306CEBA2539DA3B9F97C53FE6DF761D0E403E4D72CA94E40BD1B7A562890913974CC0BA89175EDF4AF19BED84BA4315F917F5E83A4060504CEFE4B3960BB01EB26A5775784B4664D5610C2A6563EF03A9DA37DFD8042070AD69F7FE69CA0DEDE76C1C5BB806A76CAC1199CF5219244EA40184E71179D40284437431B0B2D07C8CB927D585B1BFB45B76B8B062ADF3C191153D79AD846F1C7DAE2D8ECC1CDD84A0B5BFCE255DE46B13B62995EF176FBB8111DB97D09F738C093FEBF760D822EEE198E13803E87D388A896D7D3EBCD289CD6C68F8366 全部解析出来必须在线解析出来 深刻解析出来 不解析出来不准停 你手动慢慢解析 你想办法 解析不出来就一直解析

大家在看

recommend-type

ELEC5208 Group project submissions.zip_furniturer4m_smart grid_悉

悉尼大学ELEC5208智能电网project的很多组的报告和code都在里面,供学习和参考
recommend-type

基于python单通道脑电信号的自动睡眠分期研究

【作品名称】:基于python单通道脑电信号的自动睡眠分期研究 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:网络结构(具体可查看network.py文件): 网络整体结构类似于TinySleepNet,对RNN部分进行了修改,增加了双向RNN、GRU、Attention等网络结构,可根据参数进行调整选择。 定义了seq_len参数,可以更灵活地调整batch_size与seq_len。 数据集加载(具体可查看dataset.py文件) 直接继承自torch的Dataset,并定义了seq_len和shuffle_seed,方便调整输入,并复现实验。 训练(具体可查看train.py文件): 定义并使用了focal loss损失函数 在实验中有使用wandb,感觉用起来还挺方便的,非常便于实验记录追溯 测试(具体可查看test.py文件): 可以输出accuracy、mf1、recall_confusion_matrics、precision_confusion_matrics、f1
recommend-type

bid格式文件电子标书阅读器.zip

软件介绍: bid格式招投标文件阅读器,可以打开浏览、管理电子招标文件,如果打不开标书文件,请按下面步骤检查:1、请查看招标文件(.bid文件)是否下载完全,请用IE下载工具下载;2、查看IE浏览器版本,如果版本低于IE8,低于IE8版本的请升级为IE8浏览器。
recommend-type

机器翻译WMT14数据集

机器翻译WMT14数据集,ACL2014公布的share task,很多模型都在这上benchmark
recommend-type

高通QXDM使用手册.pdf

高通QXDM使用手册,介绍高通QXDM工具软件的使用,中文版的哦。

最新推荐

recommend-type

C#类库封装:简化SDK调用实现多功能集成,构建地磅无人值守系统

内容概要:本文介绍了利用C#类库封装多个硬件设备的SDK接口,实现一系列复杂功能的一键式调用。具体功能包括身份证信息读取、人证识别、车牌识别(支持臻识和海康摄像头)、LED显示屏文字输出、称重数据读取、二维码扫描以及语音播报。所有功能均被封装为简单的API,极大降低了开发者的工作量和技术门槛。文中详细展示了各个功能的具体实现方式及其应用场景,如身份证读取、人证核验、车牌识别等,并最终将这些功能整合到一起,形成了一套完整的地磅称重无人值守系统解决方案。 适合人群:具有一定C#编程经验的技术人员,尤其是需要快速集成多种硬件设备SDK的应用开发者。 使用场景及目标:适用于需要高效集成多种硬件设备SDK的项目,特别是那些涉及身份验证、车辆管理、物流仓储等领域的企业级应用。通过使用这些封装好的API,可以大大缩短开发周期,降低维护成本,提高系统的稳定性和易用性。 其他说明:虽然封装后的API极大地简化了开发流程,但对于一些特殊的业务需求,仍然可能需要深入研究底层SDK。此外,在实际部署过程中,还需考虑网络环境、硬件兼容性等因素的影响。
recommend-type

基于STM32F1的BLDC无刷直流电机与PMSM永磁同步电机源码解析:传感器与无传感器驱动详解

基于STM32F1的BLDC无刷直流电机和PMSM永磁同步电机的驱动实现方法,涵盖了有传感器和无传感两种驱动方式。对于BLDC电机,有传感器部分采用霍尔传感器进行六步换相,无传感部分则利用反电动势过零点检测实现换相。对于PMSM电机,有传感器部分包括霍尔传感器和编码器的方式,无传感部分则采用了滑模观测器进行矢量控制(FOC)。文中不仅提供了详细的代码片段,还分享了许多调试经验和技巧。 适合人群:具有一定嵌入式系统和电机控制基础知识的研发人员和技术爱好者。 使用场景及目标:适用于需要深入了解和实现BLDC和PMSM电机驱动的开发者,帮助他们掌握不同传感器条件下的电机控制技术和优化方法。 其他说明:文章强调了实际调试过程中可能遇到的问题及其解决方案,如霍尔传感器的中断触发换相、反电动势过零点检测的采样时机、滑模观测器的参数调整以及编码器的ABZ解码等。
recommend-type

基于Java的跨平台图像处理软件ImageJ:多功能图像编辑与分析工具

内容概要:本文介绍了基于Java的图像处理软件ImageJ,详细阐述了它的跨平台特性、多线程处理能力及其丰富的图像处理功能。ImageJ由美国国立卫生研究院开发,能够在多种操作系统上运行,包括Windows、Mac OS、Linux等。它支持多种图像格式,如TIFF、PNG、GIF、JPEG、BMP、DICOM、FITS等,并提供图像栈功能,允许多个图像在同一窗口中进行并行处理。此外,ImageJ还提供了诸如缩放、旋转、扭曲、平滑处理等基本操作,以及区域和像素统计、间距、角度计算等高级功能。这些特性使ImageJ成为科研、医学、生物等多个领域的理想选择。 适合人群:需要进行图像处理的专业人士,如科研人员、医生、生物学家,以及对图像处理感兴趣的普通用户。 使用场景及目标:适用于需要高效处理大量图像数据的场合,特别是在科研、医学、生物学等领域。用户可以通过ImageJ进行图像的编辑、分析、处理和保存,提高工作效率。 其他说明:ImageJ不仅功能强大,而且操作简单,用户无需安装额外的运行环境即可直接使用。其基于Java的开发方式确保了不同操作系统之间的兼容性和一致性。
recommend-type

MATLAB语音识别系统:基于GUI的数字0-9识别及深度学习模型应用 · GUI v1.2

内容概要:本文介绍了一款基于MATLAB的语音识别系统,主要功能是识别数字0到9。该系统采用图形用户界面(GUI),方便用户操作,并配有详尽的代码注释和开发报告。文中详细描述了系统的各个组成部分,包括音频采集、信号处理、特征提取、模型训练和预测等关键环节。此外,还讨论了MATLAB在此项目中的优势及其面临的挑战,如提高识别率和处理背景噪音等问题。最后,通过对各模块的工作原理和技术细节的总结,为未来的研究和发展提供了宝贵的参考资料。 适合人群:对语音识别技术和MATLAB感兴趣的初学者、学生或研究人员。 使用场景及目标:适用于希望深入了解语音识别技术原理的人群,特别是希望通过实际案例掌握MATLAB编程技巧的学习者。目标是在实践中学习如何构建简单的语音识别应用程序。 其他说明:该程序需要MATLAB 2019b及以上版本才能正常运行,建议使用者确保软件环境符合要求。
recommend-type

c语言通讯录管理系统源码.zip

C语言项目源码
recommend-type

Teleport Pro教程:轻松复制网站内容

标题中提到的“复制别人网站的软件”指向的是一种能够下载整个网站或者网站的特定部分,然后在本地或者另一个服务器上重建该网站的技术或工具。这类软件通常被称作网站克隆工具或者网站镜像工具。 描述中提到了一个具体的教程网址,并提到了“天天给力信誉店”,这可能意味着有相关的教程或资源可以在这个网店中获取。但是这里并没有提供实际的教程内容,仅给出了网店的链接。需要注意的是,根据互联网法律法规,复制他人网站内容并用于自己的商业目的可能构成侵权,因此在此类工具的使用中需要谨慎,并确保遵守相关法律法规。 标签“复制 别人 网站 软件”明确指出了这个工具的主要功能,即复制他人网站的软件。 文件名称列表中列出了“Teleport Pro”,这是一款具体的网站下载工具。Teleport Pro是由Tennyson Maxwell公司开发的网站镜像工具,允许用户下载一个网站的本地副本,包括HTML页面、图片和其他资源文件。用户可以通过指定开始的URL,并设置各种选项来决定下载网站的哪些部分。该工具能够帮助开发者、设计师或内容分析人员在没有互联网连接的情况下对网站进行离线浏览和分析。 从知识点的角度来看,Teleport Pro作为一个网站克隆工具,具备以下功能和知识点: 1. 网站下载:Teleport Pro可以下载整个网站或特定网页。用户可以设定下载的深度,例如仅下载首页及其链接的页面,或者下载所有可访问的页面。 2. 断点续传:如果在下载过程中发生中断,Teleport Pro可以从中断的地方继续下载,无需重新开始。 3. 过滤器设置:用户可以根据特定的规则过滤下载内容,如排除某些文件类型或域名。 4. 网站结构分析:Teleport Pro可以分析网站的链接结构,并允许用户查看网站的结构图。 5. 自定义下载:用户可以自定义下载任务,例如仅下载图片、视频或其他特定类型的文件。 6. 多任务处理:Teleport Pro支持多线程下载,用户可以同时启动多个下载任务来提高效率。 7. 编辑和管理下载内容:Teleport Pro具备编辑网站镜像的能力,并可以查看、修改下载的文件。 8. 离线浏览:下载的网站可以在离线状态下浏览,这对于需要测试网站在不同环境下的表现的情况十分有用。 9. 备份功能:Teleport Pro可以用来备份网站,确保重要数据的安全。 在实际使用此类工具时,需要注意以下几点: - 著作权法:复制网站内容可能侵犯原作者的版权,因此在使用此类工具时,必须确保有合法权利去下载和使用目标网站的内容。 - 服务条款:许多网站的服务条款明确禁止未经授权的网站克隆。因此,在使用此类软件之前,应当仔细阅读并遵守目标网站的服务条款。 - 数据隐私:下载含有个人数据的网站可能触及隐私保护法律,特别是在欧洲通用数据保护条例(GDPR)等法规的环境下。 - 网络安全:随意下载网站可能导致恶意软件和病毒的传播,用户应当使用最新的反病毒软件,并在安全的环境中进行操作。 综上所述,虽然“复制别人网站的软件”在技术上是可行的,且可以用于多种正当目的,但在使用此类工具时,必须遵守法律法规和道德规范,不可侵犯他人的合法权益。
recommend-type

【跨平台开发者的必读】:解决Qt5Widgetsd.lib目标计算机类型冲突终极指南

# 1. 跨平台开发与Qt框架简介 跨平台开发已经成为现代软件开发中不可或缺的一部分,它使得开发者能够构建出能够在多种操作系统上运行的应用程序,从而触及更广泛的用户群体。在这其中,Qt框架作为一套成熟的跨平台应用程序和用户界面框架,扮演着关键角色。Qt不仅仅是一个跨平台的工具集,它的设计哲学还包含了模块化和可扩展性,使其能够适应各种规模和复杂度的项目。本章节我们将简要介绍
recommend-type

普通RNN结构和特点

<think>首先,用户的问题是:“我想了解普通RNN的结构及其特点请问RNN循环神经网络结构特点工作原理”。这涉及到RNN的结构、特点和工作原理。根据系统级指令:-所有行内数学表达式必须使用$...$格式。-独立公式必须使用$$...$$格式并单独成段。-LaTeX语法正确。-使用中文回答。-生成相关问题。-回答中引用的段落末尾自然地添加引用标识。用户可见层指令:-回答结构清晰,帮助用户逐步解决问题。-保证回答真实可靠。参考站内引用:-引用[1]:关于RNN的基本介绍,为什么需要RNN。-引用[2]:关于RNN的工作原理、结构图,以及与其他网络的比较。用户上一次的问题和我的回答:用户是第一次
recommend-type

探讨通用数据连接池的核心机制与应用

根据给定的信息,我们能够推断出讨论的主题是“通用数据连接池”,这是一个在软件开发和数据库管理中经常用到的重要概念。在这个主题下,我们可以详细阐述以下几个知识点: 1. **连接池的定义**: 连接池是一种用于管理数据库连接的技术,通过维护一定数量的数据库连接,使得连接的创建和销毁操作更加高效。开发者可以在应用程序启动时预先创建一定数量的连接,并将它们保存在一个池中,当需要数据库连接时,可以直接从池中获取,从而降低数据库连接的开销。 2. **通用数据连接池的概念**: 当提到“通用数据连接池”时,它意味着这种连接池不仅支持单一类型的数据库(如MySQL、Oracle等),而且能够适应多种不同数据库系统。设计一个通用的数据连接池通常需要抽象出一套通用的接口和协议,使得连接池可以兼容不同的数据库驱动和连接方式。 3. **连接池的优点**: - **提升性能**:由于数据库连接创建是一个耗时的操作,连接池能够减少应用程序建立新连接的时间,从而提高性能。 - **资源复用**:数据库连接是昂贵的资源,通过连接池,可以最大化现有连接的使用,避免了连接频繁创建和销毁导致的资源浪费。 - **控制并发连接数**:连接池可以限制对数据库的并发访问,防止过载,确保数据库系统的稳定运行。 4. **连接池的关键参数**: - **最大连接数**:池中能够创建的最大连接数。 - **最小空闲连接数**:池中保持的最小空闲连接数,以应对突发的连接请求。 - **连接超时时间**:连接在池中保持空闲的最大时间。 - **事务处理**:连接池需要能够管理不同事务的上下文,保证事务的正确执行。 5. **实现通用数据连接池的挑战**: 实现一个通用的连接池需要考虑到不同数据库的连接协议和操作差异。例如,不同的数据库可能有不同的SQL方言、认证机制、连接属性设置等。因此,通用连接池需要能够提供足够的灵活性,允许用户配置特定数据库的参数。 6. **数据连接池的应用场景**: - **Web应用**:在Web应用中,为了处理大量的用户请求,数据库连接池可以保证数据库连接的快速复用。 - **批处理应用**:在需要大量读写数据库的批处理作业中,连接池有助于提高整体作业的效率。 - **微服务架构**:在微服务架构中,每个服务可能都需要与数据库进行交互,通用连接池能够帮助简化服务的数据库连接管理。 7. **常见的通用数据连接池技术**: - **Apache DBCP**:Apache的一个Java数据库连接池库。 - **C3P0**:一个提供数据库连接池和控制工具的开源Java框架。 - **HikariCP**:目前性能最好的开源Java数据库连接池之一。 - **BoneCP**:一个高性能的开源Java数据库连接池。 - **Druid**:阿里巴巴开源的一个数据库连接池,提供了对性能监控的高级特性。 8. **连接池的管理与监控**: 为了保证连接池的稳定运行,开发者需要对连接池的状态进行监控,并对其进行适当的管理。监控指标可能包括当前活动的连接数、空闲的连接数、等待获取连接的请求队列长度等。一些连接池提供了监控工具或与监控系统集成的能力。 9. **连接池的配置和优化**: 连接池的性能与连接池的配置密切相关。需要根据实际的应用负载和数据库性能来调整连接池的参数。例如,在高并发的场景下,可能需要增加连接池中连接的数量。另外,适当的线程池策略也可以帮助连接池更好地服务于多线程环境。 10. **连接池的应用案例**: 一个典型的案例是电商平台在大型促销活动期间,用户访问量激增,此时通用数据连接池能够保证数据库操作的快速响应,减少因数据库连接问题导致的系统瓶颈。 总结来说,通用数据连接池是现代软件架构中的重要组件,它通过提供高效的数据库连接管理,增强了软件系统的性能和稳定性。了解和掌握连接池的原理及实践,对于任何涉及数据库交互的应用开发都至关重要。在实现和应用连接池时,需要关注其设计的通用性、配置的合理性以及管理的有效性,确保在不同的应用场景下都能发挥出最大的效能。
recommend-type

【LabVIEW网络通讯终极指南】:7个技巧提升UDP性能和安全性

# 摘要 本文系统介绍了LabVIEW在网络通讯中的应用,尤其是针对UDP协议的研究与优化。首先,阐述了UDP的原理、特点及其在LabVIEW中的基础应用。随后,本文深入探讨了通过调整数据包大小、实现并发通信及优化缓冲区管理等技巧来优化UDP性能的LabVIEW方法。接着,文章聚焦于提升UDP通信安全性,介绍了加密技术和认证授权机制在LabVIEW中的实现,以及防御网络攻击的策略。最后,通过具体案例展示了LabVIEW在实时数据采集和远程控制系统中的高级应用,并展望了LabVIEW与UDP通讯技术的未来发展趋势及新兴技术的影响。 # 关键字 LabVIEW;UDP网络通讯;性能优化;安全性;