最小二乘法的矩阵表达

这篇具有很好参考价值的文章主要介绍了最小二乘法的矩阵表达。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 前期准备

为了方便表述,我们先做一些很简单的定义:

假设有一多项式函数:
f ( x 1 , x 2 , ⋯   , x m ) = ∑ i = 1 m a i x i f( x_1,x_2,\cdots ,x_m) =\sum_{i=1}^m{a_ix_i} f(x1,x2,,xm)=i=1maixi
我们将函数中的自变量都提取出来组成一个列向量 x x x
x = [ x 1 , x 2 , ⋯   , x m ] T x=[x_1,x_2,\cdots,x_m]^T x=[x1,x2,,xm]T
则称 x x x为一个向量变元

[ x 1 , x 2 ] T [x_1,x_2]^T [x1,x2]T就是 f ( x 1 , x 2 ) = x 1 + 2 x 2 f(x_1,x_2)=x_1+2x_2 f(x1,x2)=x1+2x2向量变元

此时,如果我们按照向量变元内部的变量排列顺序,依次在每个变量位置填上该变量对应的偏导函数,则就构成了对于函数 f ( x 1 , x 2 , ⋯   , x m ) f( x_1,x_2,\cdots ,x_m) f(x1,x2,,xm)进行向量变元 x x x的向量求导的结果,即:
∂ f ( x 1 , x 2 , ⋯   , x m ) ∂ x = [ ∂ f ( x 1 , x 2 , ⋯   , x m ) ∂ x 1 , ∂ f ( x 1 , x 2 , ⋯   , x m ) ∂ x 2 , ⋯   , ∂ f ( x 1 , x 2 , ⋯   , x m ) ∂ x m ] T \frac{\partial f(x_1,x_2,\cdots ,x_m)}{\partial x}=[ \frac{\partial f(x_1,x_2,\cdots ,x_m)}{\partial x_1},\frac{\partial f(x_1,x_2,\cdots ,x_m)}{\partial x_2},\cdots ,\frac{\partial f(x_1,x_2,\cdots ,x_m)}{\partial x_m} ] ^T xf(x1,x2,,xm)=[x1f(x1,x2,,xm),x2f(x1,x2,,xm),,xmf(x1,x2,,xm)]T
据此,我们对向量求导做出定义:

f ( x ) f(x) f(x)是一个关于 x x x的函数,其中 x x x是向量变元,并且 x = [ x 1 , x 2 , . . . , x n ] T x = [x_1, x_2,...,x_n]^T x=[x1,x2,...,xn]T


∂ f ∂ x = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x n ] T \frac{\partial f}{\partial x} = [\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ..., \frac{\partial f}{\partial x_n}]^T xf=[x1f,x2f,...,xnf]T
而该表达式也被称为向量求导的梯度向量形式。
∇ x f ( x ) = ∂ f ∂ x = [ ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x n ] T \nabla _xf(x) = \frac{\partial f}{\partial x} = [\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ..., \frac{\partial f}{\partial x_n}]^T xf(x)=xf=[x1f,x2f,...,xnf]T
接下来,我们去证明几个等式,这些等式都将再最小二乘法的矩阵形式推导中用到。

等式一:
∂ a ∂ x = 0 \frac{\partial a}{\partial x} = 0 xa=0
证明:
∂ a ∂ x = [ ∂ a ∂ x 1 , ∂ a ∂ x 2 , . . . , ∂ a ∂ x n ] T = [ 0 , 0 , . . . , 0 ] T \frac{\partial a}{\partial x} = [\frac{\partial a}{\partial x_1}, \frac{\partial a}{\partial x_2}, ..., \frac{\partial a}{\partial x_n}]^T = [0,0,...,0]^T xa=[x1a,x2a,...,xna]T=[0,0,...,0]T

等式二:
∂ ( x T ⋅ A ) ∂ x = ∂ ( A T ⋅ x ) ∂ x = A \frac{\partial(x^T \cdot A)}{\partial x} = \frac{\partial(A^T \cdot x)}{\partial x} = A x(xTA)=x(ATx)=A
证明:

A = [ a 1 , a 2 , . . . , a n ] T A = [a_1, a_2,...,a_n]^T A=[a1,a2,...,an]T,则有:
∂ ( x T ⋅ A ) ∂ x = ∂ ( A T ⋅ x ) ∂ x = ∂ ( a 1 ⋅ x 1 + a 2 ⋅ x 2 + . . . + a n ⋅ x n ) ∂ x = [ ∂ ( a 1 ⋅ x 1 + a 2 ⋅ x 2 + . . . + a n ⋅ x n ) ∂ x 1 ∂ ( a 1 ⋅ x 1 + a 2 ⋅ x 2 + . . . + a n ⋅ x n ) ∂ x 2 . . . ∂ ( a 1 ⋅ x 1 + a 2 ⋅ x 2 + . . . + a n ⋅ x n ) ∂ x n ] = [ a 1 a 2 . . . a n ] = A \begin{aligned} \frac{\partial(x^T \cdot A)}{\partial x} & = \frac{\partial(A^T \cdot x)}{\partial x}\\ & = \frac{\partial(a_1 \cdot x_1 + a_2 \cdot x_2 +...+ a_n \cdot x_n)}{\partial x}\\ & = \left [\begin{array}{cccc} \frac{\partial(a_1 \cdot x_1 + a_2 \cdot x_2 +...+ a_n \cdot x_n)}{\partial x_1} \\ \frac{\partial(a_1 \cdot x_1 + a_2 \cdot x_2 +...+ a_n \cdot x_n)}{\partial x_2} \\ . \\ . \\ . \\ \frac{\partial(a_1 \cdot x_1 + a_2 \cdot x_2 +...+ a_n \cdot x_n)}{\partial x_n} \\ \end{array}\right] \\ & =\left [\begin{array}{cccc} a_1 \\ a_2 \\ . \\ . \\ . \\ a_n \\ \end{array}\right] = A \end{aligned} x(xTA)=x(ATx)=x(a1x1+a2x2+...+anxn)=x1(a1x1+a2x2+...+anxn)x2(a1x1+a2x2+...+anxn)...xn(a1x1+a2x2+...+anxn)=a1a2...an=A

等式三:
∂ ( x T ⋅ x ) ∂ x = 2 x \frac{\partial (x^T \cdot x)}{\partial x} = 2x x(xTx)=2x
证明:
∂ ( x T ⋅ x ) ∂ x = ∂ ( x 1 2 + x 2 2 + . . . + x n 2 ) ∂ x = [ ∂ ( x 1 2 + x 2 2 + . . . + x n 2 ) ∂ x 1 ∂ ( x 1 2 + x 2 2 + . . . + x n 2 ) ∂ x 2 . . . ∂ ( x 1 2 + x 2 2 + . . . + x n 2 ) ∂ x n ] = [ 2 x 1 2 x 2 . . . 2 x n ] = 2 x \begin{aligned} \frac{\partial(x^T \cdot x)}{\partial x} & = \frac{\partial(x_1^2+x_2^2+...+x_n^2)}{\partial x}\\ & = \left [\begin{array}{cccc} \frac{\partial(x_1^2+x_2^2+...+x_n^2)}{\partial x_1} \\ \frac{\partial(x_1^2+x_2^2+...+x_n^2)}{\partial x_2} \\ . \\ . \\ . \\ \frac{\partial(x_1^2+x_2^2+...+x_n^2)}{\partial x_n} \\ \end{array}\right] \\ & =\left [\begin{array}{cccc} 2x_1 \\ 2x_2 \\ . \\ . \\ . \\ 2x_n \\ \end{array}\right] = 2x \end{aligned} x(xTx)=x(x12+x22+...+xn2)=x1(x12+x22+...+xn2)x2(x12+x22+...+xn2)...xn(x12+x22+...+xn2)=2x12x2...2xn=2x

此处 x T x x^Tx xTx也被称为向量的交叉乘积(crossprod)

等式四:
∂ ( x T A x ) x = A x + A T x \frac{\partial (x^T A x)}{x} = Ax + A^Tx x(xTAx)=Ax+ATx
证明:

首先:
X T A X = [ x 1 , x 2 , . . . , x n ] ⋅ [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a n 1 a n 2 . . . a n n ] ⋅ [ x 1 , x 2 , . . . , x n ] T = [ x 1 a 11 + x 2 a 21 + . . . + x n a n 1 , x 1 a 12 + x 2 a 22 + . . . + x n a n 2 , . . . , x 1 a 1 n + x 2 a 2 n + . . . + x n a n n ] ⋅ [ x 1 x 2 . . . x n ] = x 1 ( x 1 a 11 + x 2 a 21 + . . . + x n a n 1 ) + x 2 ( x 1 a 12 + x 2 a 22 + . . . + x n a n 2 ) + . . . + x n ( x 1 a 1 n + x 2 a 2 n + . . . + x n a n n ) \begin{aligned} X^TAX &= [x_1, x_2,...,x_n] \cdot \left [\begin{array}{cccc} a_{11} &a_{12} &... &a_{1n}\\ a_{21} &a_{22} &... &a_{2n}\\ ... &... &... &... \\ a_{n1} &a_{n2} &... &a_{nn}\\ \end{array}\right] \cdot [x_1, x_2,...,x_n]^T \\ &=[x_1a_{11}+x_2a_{21}+...+x_na_{n1}, x_1a_{12}+x_2a_{22}+...+x_na_{n2},...,x_1a_{1n}+x_2a_{2n}+...+x_na_{nn}] \cdot \left [\begin{array}{cccc} x_1 \\ x_2 \\ . \\ . \\ . \\ x_n \\ \end{array}\right] \\ &=x_1(x_1a_{11}+x_2a_{21}+...+x_na_{n1})+x_2(x_1a_{12}+x_2a_{22}+...+x_na_{n2})+...+x_n(x_1a_{1n}+x_2a_{2n}+...+x_na_{nn}) \end{aligned} XTAX=[x1,x2,...,xn]a11a21...an1a12a22...an2............a1na2n...ann[x1,x2,...,xn]T=[x1a11+x2a21+...+xnan1,x1a12+x2a22+...+xnan2,...,x1a1n+x2a2n+...+xnann]x1x2...xn=x1(x1a11+x2a21+...+xnan1)+x2(x1a12+x2a22+...+xnan2)+...+xn(x1a1n+x2a2n+...+xnann)
令:
k ( x ) = x 1 ( x 1 a 11 + x 2 a 21 + . . . + x n a n 1 ) + x 2 ( x 1 a 12 + x 2 a 22 + . . . + x n a n 2 ) + . . . + x n ( x 1 a 1 n + x 2 a 2 n + . . . + x n a n n ) k(x) = x_1(x_1a_{11}+x_2a_{21}+...+x_na_{n1})+x_2(x_1a_{12}+x_2a_{22}+...+x_na_{n2})+...+x_n(x_1a_{1n}+x_2a_{2n}+...+x_na_{nn}) k(x)=x1(x1a11+x2a21+...+xnan1)+x2(x1a12+x2a22+...+xnan2)+...+xn(x1a1n+x2a2n+...+xnann)
则:
∂ k ( x ) ∂ x 1 = ( x 1 a 11 + x 2 a 21 + . . . + x n a n 1 ) + ( x 1 a 11 + x 2 a 12 + . . . + x n a 1 n ) \frac{\partial k(x)}{\partial x_1} = (x_1a_{11}+x_2a_{21}+...+x_na_{n1})+ (x_1a_{11} + x_2a_{12}+...+x_na_{1n}) x1k(x)=(x1a11+x2a21+...+xnan1)+(x1a11+x2a12+...+xna1n)
所以:
最小二乘法的矩阵表达

2 最小二乘法矩阵形式推导过程

假设有一多元线性方程组:
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(x) = w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1x1+w2x2+...+wdxd+b
w = [ w 1 , w 2 , . . . w d ] T w = [w_1,w_2,...w_d]^T w=[w1,w2,...wd]T x = [ x 1 , x 2 , . . . x d ] T x = [x_1,x_2,...x_d]^T x=[x1,x2,...xd]T,则上式可写为:
f ( x ) = w T x + b f(x) = w^Tx+b f(x)=wTx+b
但是上式还不够简洁,我们可以令:
w ^ = [ w 1 , w 2 , . . . , w d , b ] T x ^ = [ x 1 , x 2 , . . . , x d , 1 ] T \hat w = [w_1,w_2,...,w_d,b]^T\\ \hat x = [x_1,x_2,...,x_d,1]^T w^=[w1,w2,...,wd,b]Tx^=[x1,x2,...,xd,1]T
假设现在总共有 m m m条观测值( m > d m>d m>d), x ( i ) = [ x 1 ( i ) , x 2 ( i ) , . . . , x d ( i ) ] x^{(i)} = [x_1^{(i)}, x_2^{(i)},...,x_d^{(i)}] x(i)=[x1(i),x2(i),...,xd(i)],则带入 f ( x ) f(x) f(x)中可构成 m m m个方程:
最小二乘法的矩阵表达
再令:
最小二乘法的矩阵表达
所以方程组可写作:
X ^ ⋅ w ^ = y ^ \hat X \cdot \hat w = \hat y X^w^=y^
该线性模型也可写作:
f ( x ^ ) = w ^ T ⋅ x ^ f(\hat x) = \hat w^T \cdot \hat x f(x^)=w^Tx^
我们可建立使误差平方和 S S E SSE SSE最小的优化模型:
min ⁡ S ( w ^ ) = ∣ ∣ y − X w ^ ∣ ∣ 2 2 = ( y − X w ^ ) T ( y − X w ^ ) \min S(\hat w) = ||y - X\hat w||_2^2 = (y - X\hat w)^T(y - X\hat w) minS(w^)=yXw^22=(yXw^)T(yXw^)
上式中, ∣ ∣ y − X w ^ ∣ ∣ 2 ||y - X\hat w||_2 yXw^2为向量的2-范数的计算表达式。向量的2-范数计算过程为各分量求平方和再进行开平方。例如 a = [ 1 , − 1 , ] a=[1, -1,] a=[1,1,],则 ∣ ∣ a ∣ ∣ 2 = 1 2 + ( − 1 ) 2 = 2 ||a||_2= \sqrt{1^2+(-1)^2}=\sqrt{2} a2=12+(1)2 =2

我们只需要求得偏导数的零点,即可得到最优解,即最优的 w ^ \hat w w^值,即拟合的参数,即可得拟合的多元函数表达式

在此之前,需要补充两点矩阵转置的运算规则:
( A − B ) T = A T − B T ( A B ) T = B T A T (A-B)^T=A^T-B^T\\ (AB)^T=B^TA^T (AB)T=ATBT(AB)T=BTAT
S ( w ^ ) S(\hat w) S(w^)求导并令其为0即可:
S ( w ^ ) ∂ w ^ = ∂ ∣ ∣ y − X w ^ ∣ ∣ 2 2 ∂ w ^ = ∂ ( y − X w ^ ) T ( y − X w ^ ) ∂ w ^ = ∂ ( y T − w ^ T X T ) ( y − X w ^ ) ∂ w ^ = ∂ ( y T y − w ^ T X T y − y T X w ^ + w ^ T X T X w ^ ) ∂ w ^ = 0 − X T y − X T y + X T X w ^ + ( X T X ) T w ^ = 0 − X T y − X T y + 2 X T X w ^ = 2 ( X T X w ^ − X T y ) = 0 \begin{aligned} \frac{S(\hat w)}{\partial{\boldsymbol{\hat w}}} &= \frac{\partial{||\boldsymbol{y} - \boldsymbol{X\hat w}||_2}^2}{\partial{\boldsymbol{\hat w}}} \\ &= \frac{\partial(\boldsymbol{y} - \boldsymbol{X\hat w})^T(\boldsymbol{y} - \boldsymbol{X\hat w})}{\partial{\boldsymbol{\hat w}}} \\ & =\frac{\partial(\boldsymbol{y}^T - \boldsymbol{\hat w^T X^T})(\boldsymbol{y} - \boldsymbol{X\hat w})}{\partial{\boldsymbol{\hat w}}}\\ &=\frac{\partial(\boldsymbol{y}^T\boldsymbol{y} - \boldsymbol{\hat w^T X^Ty}-\boldsymbol{y}^T\boldsymbol{X \hat w} +\boldsymbol{\hat w^TX^T}\boldsymbol{X\hat w})}{\partial{\boldsymbol{\hat w}}}\\ & = 0 - \boldsymbol{X^Ty} - \boldsymbol{X^Ty}+X^TX\hat w+(X^TX)^T\hat w \\ &= 0 - \boldsymbol{X^Ty} - \boldsymbol{X^Ty} + 2\boldsymbol{X^TX\hat w}\\ &= 2(\boldsymbol{X^TX\hat w} - \boldsymbol{X^Ty}) = 0 \end{aligned} w^S(w^)=w^yXw^22=w^(yXw^)T(yXw^)=w^(yTw^TXT)(yXw^)=w^(yTyw^TXTyyTXw^+w^TXTXw^)=0XTyXTy+XTXw^+(XTX)Tw^=0XTyXTy+2XTXw^=2(XTXw^XTy)=0
即:
X T X w ^ = X T y X^TX\hat w = X^Ty XTXw^=XTy
X T X X^TX XTX存在逆矩阵,则:
w ^ = ( X T X ) − 1 X T y \hat w = (X^TX)^{-1}X^Ty w^=(XTX)1XTy
这样我们就得到了拟合的 w ^ \hat w w^,至此最小二乘法的推导结束!

3 代码验证

假如有这么一组数据:

x x x y y y
1 2
3 4

我们要利用最小二乘法得到它的一次线性拟合函数,过程如下:

我们可以知道:
X = [ 1 1 3 1 ] y = [ 2 4 ] X = \left [\begin{array}{cccc} 1 &1 \\ 3 &1 \\ \end{array}\right]\\ y = \left [\begin{array}{cccc} 2 \\ 4 \\ \end{array}\right] \\ X=[1311]y=[24]
需要拟合的参数为:
w ^ = [ w , b ] T \hat w = [w,b]^T w^=[w,b]T
则:
最小二乘法的矩阵表达
即拟合出来的函数表达式为:
y = x + 1 y=x+1 y=x+1
Python代码实现:

import numpy as np # 导入numpy库用于相关计算
X = np.array([[1, 1], [3, 1]]) # 矩阵X
y = np.array([2, 4]).reshape(2, 1) # 观察值
result=np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y) # 相关矩阵运算
# 得到的结果中,最后一个值为b,其余从上到下分别为x1的系数,x2的系数......
print("拟合的参数为:",result)

因为CSDN的Markdown编辑器无法正常编译一些公式,所以用了图片,原md文件的网址:https://gitee.com/image111111/image1/raw/master/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95%E7%9A%84%E7%9F%A9%E9%98%B5%E8%A1%A8%E8%BE%BE.md文章来源地址https://www.toymoban.com/news/detail-418953.html

到了这里,关于最小二乘法的矩阵表达的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IOS逆向前期环境准备笔记

    ios系统由于效验问题,只能升级不能降级,需要特别注意, 刷系统可以在爱思上搞定; 越狱推荐使用u盘镜像及本地启动盘制作: 注意,要进去bios,关闭安全启动,不然直接失败: Checkra1n镜像:https://share.weiyun.com/kr63NENg 其他工具:https://blog.6ziz.com/jailbreakdownload 参考教程:

    2024年02月11日
    浏览(30)
  • 使用 Git&GitHub 的前期准备

    本节包含 SSh Key 的设置,从 GitHub 上创建一个仓库,并 clone 到本地,然后对其进行更改,提交,同步到仓库。需要已经下载好了 Git ,并且已经创建了一个 GitHub 账户 1.1 创建 SSH Key 运行这条命令,然后直接敲两次回车就可以。第一次回车是将 SSH 密匙存放在默认的路径下,第

    2024年01月20日
    浏览(29)
  • 【UE Sequencer系列】01-前期准备

    新建一个工程 在虚幻商城中将我们需要的三种资产导入到新建的工程中 打开工程可以看到导入的资产 新建两个文件夹,一个用来存放音频,一个用来存放所有的Sequencer 导入音频(只支持wav格式) 选中声波,创建一个sound cue 打开“Forge”关卡 改变视口布局 第一个视口选择“

    2023年04月09日
    浏览(27)
  • 番外3:下载+安装VMware(前期准备)

    step1: 查看自己笔记本电脑配置; step2: 下载并安装VMware (下载地址www.kkx.net/soft/16841.html)这里选择本地普通下载; step3: 安装VMware过程中需要填写密钥(本人用的最后一个) ; #UU54R-FVD91-488PP-7NNGC-ZFAX6 #YC74H-FGF92-081VZ-R5QNG-P6RY4 YC34H-6WWDK-085MQ-JYPNX-NZRA2

    2024年02月07日
    浏览(26)
  • 使用whisper生成音频字幕——前期准备

    最近我们要写一个把没有字幕的音频生成字幕的APP,前期调研的很多方式,使用whisper可以实现,这篇文章就是说一些前期准备工作,我就不自己再写一篇了,参考以下两篇文章就行了。 whisper安装下载和python环境的准备 安装过程中踩过的坑

    2024年02月11日
    浏览(30)
  • 程序员自由创业周记#2:前期准备

    感恩 上次公开了创业的决定后,得到了很多亲朋好友和陌生朋友的鼓励或支持,以不同的形式,感动之情溢于言表。这些都会记在心里,大恩不言谢~ 创业方向 笔者是一名资质平平的iOS开发程序猿,创业项目也就是开发App卖,类型的话主要以工具类为主,优先会解决一些我的

    2024年02月10日
    浏览(37)
  • Hyperledger Fabric 应用实战(1)--前期准备

    1.1应用说明 本应用示例基于Hyperledger fabric2.4搭建一个自由房屋租赁区块链系统freerent, 用户可以自由在链上开展合同签订、执行和验真。freerent应用背景相对简单,当前应用搭建示例展示 fabric初级功能。后期将会不断探索 fabric应功能特性,也希望可以结合IPFS实现合同存储,

    2024年01月25日
    浏览(28)
  • 数据清洗:数据挖掘的前期准备工作

    ⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者: 秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们 点赞👍🏻、收藏

    2024年02月07日
    浏览(37)
  • MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文总结MATLAB编程时的一些基本操作,适用于新手小白,主要包括矩阵相乘、生成矩阵、矩阵基本操作、数组索引、最大最小操作符。 线性代数的两个矩阵相乘:用符号 “ * ” 例如A*B得到A与B的矩阵相

    2024年02月04日
    浏览(52)
  • DnCNN-matlab版本代码实战前期准备

    一、DnCNN-matlab版本代码实战前期准备 (1)DnCNN-matlab版本代码下载   https://download.csdn.net/download/qq_41104871/87457430 (2)DnCNN的灰度图像数据集下载   https://blog.csdn.net/qq_41104871/article/details/129931884 (3)DnCNN的彩色图像数据集下载   https://blog.csdn.net/qq_41104871/article/details/129932352

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包