【张量】由可逆线性变换诱导的具有新张量核范数的低秩张量补全(1)

文章目录

  • 由可逆线性变换诱导的具有新张量核范数的低秩张量补全【Low-rank Tensor Completion with a New Tensor Nuclear Norm Induced by Invertible Linear Transform】
  • 摘要
  • 1.介绍
  • **2. 由变换基的张量-张量积诱导的新的张量核范数**
    • 2.2 基于变换的 T-积 诱导的张量核范数
  • **3. 具有精确恢复保证的张量补全**
      • 定理 3.1
      • 定理 3.2

由可逆线性变换诱导的具有新张量核范数的低秩张量补全【Low-rank Tensor Completion with a New Tensor Nuclear Norm Induced by Invertible Linear Transform】

摘要

本文研究了低秩张量补全问题,旨在从部分观察到的条目中精确地恢复出一个低秩张量。我们的模型受到最近提出的基于任意可逆线性变换的 t e n s o r tensor tensor- t e n s o r tensor tensor p r o d u c t product product ( t − p r o d u c t ) (t-product) (tproduct)的启发。当线性变换满足一定条件时,我们推导出新的张量管秩、张量谱范数和张量核范数。利用张量核范数,我们通过解决一个凸规划来解决张量补全问题,并在某些张量不相关条件下提供了精确恢复的理论界限。所达到的采样复杂度是按阶最优的。我们的模型和结果在低秩矩阵和张量补全领域极大地扩展了现有结果。数值实验验证了我们的结果,而在图像恢复应用中展示了我们方法的优越性。

1.介绍

随着廉价存储器的可用性和现代计算机技术的进步,我们现在比以往任何时候都能够收集、存储和处理更多的科学和工程应用数据。真实数据通常具有多维性质:信息存储在称为张量的多维数组中,其条目由多个连续或离散变量索引。例如,彩色图像是一个三维对象,具有列、行和颜色模式;灰度视频由两个空间变量和一个时间变量索引。有许多涉及张量表示和操作的应用,包括信号处理、计算机视觉、数据挖掘等。在这些应用中的一种常见方法是利用张量数据的多维结构进行操作。将多维数据折叠成矩阵通常会导致信息丢失,并导致性能下降。观察到真实的张量数据往往具有极高的维度。但感兴趣的张量通常具有较低的秩,或者近似如此,因此具有更低维的结构。这促使了低秩张量估计和恢复问题在理论和实践中引起了广泛关注:例如,估计潜变量图模型、音频分类、图像和视频补全等。

在本文中,我们专注于低秩张量补全问题,旨在从不完整的观测中精确恢复一个低秩张量。这样的问题可以看作是低秩矩阵补全问题的扩展,该问题已经被应用于图像去噪多标签图像分类等领域。研究表明,在某些不相关条件下,通过求解以下凸模型,可以高概率地恢复具有 O ( n r l o g 2 n ) O(nr log^2 n) O(nrlog2n)观测的秩为 r r r矩阵 M ∈ R n × n M ∈ R^{n×n} MRn×n

min ⁡ X ∥ X ∥ ∗ s.t. P Ω ( X ) = P Ω ( M ) (1) \min_\mathcal{X} \|X\|_* \quad \text{s.t.} \quad P_\Omega(X) = P_\Omega(M) \tag{1} XminXs.t.PΩ(X)=PΩ(M)(1)

  • 公式解释

    问题的目标:找到一个矩阵 X X X ,使得它在满足一定条件的情况下,具有尽可能小的核范数。

    核范数通常用来度量矩阵的低秩性质,所以优化目标是希望找到一个“尽可能稀疏”的矩阵 X X X ,即尽量让矩阵 X X X 中的很多元素为零。

    而约束条件 P Ω ( X ) = P Ω ( M ) P_\Omega(X) = P_\Omega(M) PΩ(X)=PΩ(M) 则规定了矩阵 X X X 的某些元素必须与另一个矩阵 M M M 中的元素相等,这些元素由集合 Ω \Omega Ω 指定。这个约束条件的作用是,确保我们找到的矩阵 X X X 在特定位置上与矩阵 M M M 相匹配。

    所以,综合来看,这个优化问题的目标是找到一个稀疏的矩阵 X X X ,它在某些位置上与矩阵 M M M 相匹配。

    其中 P Ω ( X ) P_\Omega(X) PΩ(X) 表示 X X X 在观测集 Ω \Omega Ω 上的投影

    ∥ X ∥ ∗ \|X\|_* X X X X 的核范数,定义为其奇异值的总和

核范数是矩阵秩在一定集合内的凸包。这导致了对于公式 ( 1 ) (1) (1),其采样复杂度为 O ( n r log ⁡ 2 n ) O(nr \log^2 n) O(nrlog2n),而对于秩为 r r r 的矩阵来说,其自由度为 O ( n r ) O(nr) O(nr)

希望将低秩矩阵补全模型和分析扩展到张量情形。已经提出了几种基于不同张量秩定义凸替代的张量恢复模型,但它们在实际应用中有一些局限性。** C P CP CP** 定义为最小 秩一张量 分解的数量,计算其 N P NP NP 难度并且其凸包不明确。这使得低 C P CP CP 秩张量恢复具有挑战性。为了避免这个问题,更广泛使用的是可行的 T u c k e r Tucker Tucker 秩及其凸松弛。核范数之和( S N N SNN SNN)作为凸替代用于低秩张量补全:

min ⁡ X ∑ i = 1 k λ i ∥ X ( i ) ∥ ∗ , s.t.  P Ω ( X ) = P Ω ( M ) \min_\mathcal{X} \sum_{i=1}^k \lambda_i \|X^{(i)}\|_*, \text{ s.t. } \mathcal{P}_\Omega(\mathcal{X}) = \mathcal{P}_\Omega(\mathcal{M}) Xmini=1kλiX(i), s.t. PΩ(X)=PΩ(M)

其中 X ( i ) X^{(i)} X(i) X \mathcal{X} X m o d e − i mode-i modei 矩阵化。虽然这种方法在图像处理中的有效性已经被研究,但 S N N SNN SNN 不是 T u c k e r Tucker Tucker 秩的最紧凸松弛。理论上,上述模型在测量数量上可能大大低于具有 T u c k e r Tucker Tucker ( r , r , ⋅ ⋅ ⋅ , r ) (r, r, ···, r) (r,r,⋅⋅⋅,r) 的张量的自由度。这不同于使用核范数最小化的低秩矩阵补全模型,后者具有最优恢复率。

最近,基于 **张量-张量乘积 ( t − p r o d u c t ) (t-product) tproduct张量 SVD ( t − S V D ) (t-SVD) tSVD,提出了一种新的张量核范数**并应用于张量补全和张量稳健 P C A PCA PCA t − p r o d u c t t-product tproduct 引发的张量核范数模型的主要优点是它们具有与矩阵情况相同的紧恢复界。在本文中,我们基于 t − p r o d u c t t-product tproduct 关注低秩张量恢复问题,特别是以下问题:

本文的主要贡献是解决上述问题。我们证明,如果线性变换满足特定条件,则可以定义由变换基于 t − p r o d u c t t-product tproduct 引起的新张量核范数。进一步,我们可以定义与 t − S V D t-SVD tSVD 相同的张量管秩。最后,我们通过基于变换的张量核范数最小化解决低管秩张量恢复问题。理论上,我们证明在特定的张量不相干性条件下,通过凸优化可以高概率准确恢复底层低管秩张量。我们的模型和结果比现有结果更为广泛,因为我们可以选择更多的可逆线性变换。我们的主要结果的证明更加具有挑战性,因为基于变换的 t − p r o d u c t t-product tproduct 在原域中没有等效形式。

这篇论文的其余部分结构如下:第2节给出了一些符号,并提出了由 基于变换的 t-乘积 引导的新张量核范数。第3节通过最小化所提出的张量核范数来解决低秩张量补全问题,并在理论上提供了精确恢复的保证。第4节展示了在合成数据和实际数据上进行的数值实验。最后,第5节对这项工作进行了总结。

2. 由变换基的张量-张量积诱导的新的张量核范数

2.2 基于变换的 T-积 诱导的张量核范数

算法1:基于变换的t-积

为了让 t-积 更灵活,我们可以先对张量进行某种变换,然后再进行t-积运算。这里提到的变换是任意可逆的线性变换,比如离散傅里叶变换(DFT)。这种变换就像是把数据转化成另一种形式,进行运算后再转回来。

具体来说,如果我们有一个变换L,我们可以先用L变换张量AB,得到变换后的 A ˉ Ā Aˉ B ˉ B̄ Bˉ ,然后在变换后的空间进行 t-积 运算,最后再把结果变换回来。

算法2:张量核范数

张量核范数是一种度量张量大小的方法,就像矩阵核范数度量矩阵的大小一样。基于变换的 t-积 可以帮助我们定义张量的核范数。

假设我们已经定义了 t-积,张量 A \mathcal{A} A 通过变换 L L L 变成了 A ˉ Ā Aˉ,我们可以用 A ˉ Ā Aˉ 的核范数来定义 A \mathcal{A} A 的核范数: ∥ A ∥ ∗ : = 1 ℓ ∥ A ˉ ∥ ∗ \| \mathbf{A} \|_* := \frac{1}{\ell} \| \mathbf{Ā} \|_* A:=1Aˉ

其中, ℓ ℓ 是一个常数表示某些特定的变换条件。

总结

  1. 张量-张量积(t-积)是一种特殊的乘法运算,可以在多维数据上进行。
  2. 我们可以先对张量进行一些变换,然后再进行t-积运算,这样可以更灵活地处理数据。
  3. 基于这些变换和 t-积,我们可以定义张量的核范数,这对于处理和分析多维数据非常有用。

3. 具有精确恢复保证的张量补全

在这一节中,我们讨论低秩管状张量补全问题,通过基于线性变换的张量核范数最小化来解决这一问题。令 L L L 为任意可逆线性变换,并且满足条件 L T L = L L T = ℓ I n 3 L^T L = LL^T = \ell I_{n3} LTL=LLT=In3 。假设未知张量 M ∈ R n 1 × n 2 × n 3 M \in \mathbb{R}^{n1 \times n2 \times n3} MRn1×n2×n3 的管状秩为 rank t ( A ) = r \text{rank}t(A) = r rankt(A)=r ,并且 M M M 的条目以概率 p p p 独立观察,观察条目的索引集记为 Ω \Omega Ω 。在这种情况下,问题的目标是从观察到的条目 { M i j k , ( i , j , k ) ∈ Ω } \{M_{ijk}, (i, j, k) \in \Omega\} {Mijk,(i,j,k)Ω} 中恢复低秩张量 M M M 。为此,我们通过以下基于提出的张量核范数的凸规划来解决张量补全问题:

min ⁡ X ∥ X ∥ ∗ , s.t.  P Ω ( X ) = P Ω ( M ) . (18) \min_X \|X\|_*, \text{ s.t. } P_\Omega(X) = P_\Omega(M).\tag{18} XminX, s.t. PΩ(X)=PΩ(M).(18)

上述模型是凸的,因此其最优解是可计算的。关键问题是,通过求解 (18),我们如何能精确恢复 M M M ?观察到,对于一个低秩矩阵,若其在几乎所有行或列上均为零,则恢复几乎是不可能的【3】。因此,为避免这种病态情况,引入了不相干条件。对于张量补全问题,我们面临同样的问题。为了避免 M M M 过于稀疏,我们需要以下标准的张量不相干条件

max ⁡ i = 1 , … , n 1 ∥ U T ∗ L e i ∥ F ≤ μ r n 1 ℓ , (19) \max_{i=1,\ldots,n1} \|U^T * L e_i\|_F \leq \sqrt{\frac{\mu r}{n1\ell}},\tag{19} i=1,,n1maxUTLeiFn1μr ,(19)

max ⁡ j = 1 , … , n 2 ∥ V T ∗ L e j ∥ F ≤ μ r n 2 ℓ , (20) \max_{j=1,\ldots,n2} \|V^T * L e_j\|_F \leq \sqrt{\frac{\mu r}{n2\ell}},\tag{20} j=1,,n2maxVTLejFn2μr ,(20)

其中 μ > 0 \mu > 0 μ>0 e i e_i ei 是一个定义在下面的张量基。

定理 3.1

L L L 为任意可逆线性变换,且满足条件 L T L = L L T = ℓ I n 3 L^T L = LL^T = \ell I_{n3} LTL=LLT=In3 。设 M ∈ R n 1 × n 2 × n 3 M \in \mathbb{R}^{n1 \times n2 \times n3} MRn1×n2×n3 的管状秩为 rank t ( M ) = r \text{rank}_t(M) = r rankt(M)=r ,并且 M = U ∗ L S ∗ L V T M = U * L S * L V^T M=ULSLVT M M M 的精简 t − S V D t-SVD tSVD。假设索引 Ω ∼ Ber ( p ) \Omega \sim \text{Ber}(p) ΩBer(p) ,并且张量不相干条件 (19) 和 (20) 成立。则存在常数 c 0 , c 1 , c 2 > 0 c_0, c_1, c_2 > 0 c0,c1,c2>0 ,使得如果

p ≥ c 0 μ r log ⁡ 2 ( n ( 1 ) ℓ ) n ( 2 ) ℓ , p \geq c_0 \mu r \frac{\log^2(n(1)\ell)}{n(2)\ell}, pc0μrn(2)log2(n(1)),

M M M 是 (18) 的唯一解,概率至少为 1 − c 1 ( n 1 + n 2 ) − c 2 1 - c1(n1 + n2)^{-c2} 1c1(n1+n2)c2

理论上,定理 3.1 表明,凸规划 (18) 的最优解 X ^ \hat{X} X^ 精确恢复了低秩张量 M M M 。具体来说,为了以高概率恢复一个张量 M ∈ R n 1 × n 2 × n 3 M \in \mathbb{R}^{n1 \times n2 \times n3} MRn1×n2×n3 ,采样复杂度为 O ( r n ( 1 ) n 3 log ⁡ 2 ( n ( 1 ) ℓ ) ) O(rn(1)n3 \log^2(n(1)\ell)) O(rn(1)n3log2(n(1))) 。这一界是紧的,相比 O ( r n ( 1 ) n 3 ) O(rn(1)n3) O(rn(1)n3) 的自由度。该结果进一步推广了现有的低秩张量和低秩矩阵补全结果。例如,当使用离散傅里叶变换矩阵作为可逆线性变换 L L L 时,t-积 ∗ L *L L 简化为 [10] 中的 t-积,提出的张量核范数定义也简化为 [14] 中的定义。在这种情况下,定理 3.1 的结果等价于 [16] 中的恢复保证。此外,如果 M M M 是一个矩阵,定理 3.1 简化为 [5] 中的恢复保证。

通过标准的交替方向乘子法(ADMM)可以求解问题 (18)。我们省略了 A D M M ADMM ADMM 的细节,但给出了求解 A D M M ADMM ADMM 中关键子问题的详细信息,即,对于任何 Y ∈ R n 1 × n 2 × n 3 : Y \in \mathbb{R}^{n1 \times n2 \times n3} : YRn1×n2×n3

min ⁡ X τ ∥ X ∥ ∗ + 1 2 ∥ X − Y ∥ F 2 . \min_X \tau \|X\|_* + \frac{1}{2} \|X - Y\|_F^2. XminτX+21XYF2.

Y = U ∗ L S ∗ L V T Y = U * L S * L V^T Y=ULSLVT Y Y Y 的张量 S V D SVD SVD。对于任何 τ > 0 \tau > 0 τ>0 ,我们定义张量奇异值阈值( T − S V T T-SVT TSVT)算子如下: D τ ( Y ) = U ∗ L S τ ∗ L V T , D_\tau(Y) = U * L S_\tau * L V^T, Dτ(Y)=ULSτLVT,

其中: S τ = L − 1 ( ( L ( S ) − τ ) + ) , S_\tau = L^{-1}((L(S) - \tau)_+), Sτ=L1((L(S)τ)+),

这里 t + t_+ t+ 表示 t t t 的正部分,即 t + = max ⁡ ( t , 0 ) t_+ = \max(t, 0) t+=max(t,0) 。这个算子简单地对 L ( S ) L(S) L(S) 应用软阈值规则,有效地将它们缩小到零。 T − S V T T-SVT TSVT 算子是与提出的张量核范数相关的邻近算子。

定理 3.2

L L L 为任意可逆线性变换,且满足条件 L T L = L L T = ℓ I n 3 L^T L = LL^T = \ell I_{n3} LTL=LLT=In3 。对于任何 τ > 0 \tau > 0 τ>0 Y ∈ R n 1 × n 2 × n 3 Y \in \mathbb{R}^{n1 \times n2 \times n3} YRn1×n2×n3 ,张量奇异值阈值算子 (23) 满足:

D τ ( Y ) = arg ⁡ min ⁡ X τ ∥ X ∥ ∗ + 1 2 ∥ X − Y ∥ F 2 . D_\tau(Y) = \arg\min_X \tau \|X\|_* + \frac{1}{2} \|X - Y\|_F^2. Dτ(Y)=argXminτX+21XYF2.

ADMM 求解 (18) 的主要成本是计算 (25) 的 D τ ( Y ) D_\tau(Y) Dτ(Y) 。对于任意一般线性变换 L L L ,每次迭代的成本为 O ( n 1 n 2 n 3 2 + n ( 1 ) n ( 2 ) 2 n 3 ) O(n1n2n3^2 + n(1)n(2)^2n3) O(n1n2n32+n(1)n(2)2n3) 。对于某些特定的线性变换,例如 D F T DFT DFT,每次迭代的成本可以进一步降低。通过利用 M M M 的低秩结构先验,成本可以进一步降低,正如在 [12] 的矩阵情况中一样。,计算线性变换之后的A的核范数?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RFID芯片掼蛋牌:高科技与传统玩法结合,游戏体验焕然一新。

火爆“出圈”的掼蛋,是一种玩法相当鲜明的智力游戏。近年来得到了不少的推广和发展,各地举办了各种掼蛋比赛和活动,吸引了大量的参赛者和观众。此外,一些企业和机构也开始将掼蛋作为一种企业文化或者社交活动的方式,通…

灯下黑”挖出国内知名安全平台某BUF的CSRF漏洞

漏洞复现: 漏洞点在删除文章的地方,首先为了测试先发布一篇文章 发布之后我们可以查看文章,注意url中的一串数字,就是这篇文章的id,如下如: 这里的文章id是“271825”,首先抓一下删除文章的数据…

JavaScript基础(十)

上一篇学了各种数组方法&#xff0c;正好先做个练习回忆一下: 排序并去重 我随便写一组数&#xff0c;要求排好并去掉重复的: var arr [2,8,1,7,2,6,1,5,2,7,6,5]; for (var i0; i<arr.length; i){ for (var ji1; j<arr.length; j){ if(arr[i]arr[j]){ arr.splice(j,1)…

LeetCode 474.一和零

没做出来&#xff0c;最后看了解析&#xff0c;看了半天才懂。 我一开始把这个题当成多重背包来做了&#xff0c;因为有0和1两个参数需要考虑&#xff0c;但是中间很多情况不知道怎么处理。后面看了解析才知道这是个01背包问题&#xff0c;0和1都是一个物品上的属性&#xff0c…

Revit二次开发-WPF ProgressBar 执行程序中显示进度条

Revit开发执行命令时如果时间长,界面会顶住,导致用户误以为程序未响应,解决方法:增加WPF ProgressBar 进度条执行程序中显示进度条,提示命令还是进行中, 实现流程: 新建一个WPF,Window启动时加载一个事件Loaded=“Window_Loaded”,用于显示进度条在WPF后台,新建一个异…

安卓自定义UI组件开发流程

安卓自定义ui组件开发流程 开发安卓自定义UI组件的流程大致可以分为以下几个步骤&#xff1a; 确定需求和设计&#xff1a; 确定需要自定义的UI组件的功能和外观。设计组件的交互逻辑和视觉效果。 创建自定义组件类&#xff1a; 创建一个新的Java类&#xff0c;继承自View、V…

K-means 聚类模型详解

K-means 聚类模型详解 K-means 是一种常用的无监督学习算法&#xff0c;用于将数据集分成 K 个簇。其目标是最小化各个簇内数据点到簇中心的距离平方和。K-means 广泛应用于图像压缩、市场细分、模式识别等领域。 算法步骤 初始化: 随机选择 K 个初始簇中心&#xff08;质心…

Sql入门教程

SQL&#xff0c;全称Structured Query Language&#xff0c;也就是结构化查询语言&#xff0c;它是和数据库沟通的语言。想象一下&#xff0c;数据库是个巨大的仓库&#xff0c;里面放着各种信息&#xff0c;而SQL就是你用来告诉仓库管理员&#xff08;数据库&#xff09;你要做…

gulp入门8:serites

在Gulp中&#xff0c;gulp.series 是一个非常重要的函数&#xff0c;它允许你将多个任务&#xff08;task&#xff09;组合成一个顺序执行的序列。这对于那些需要按照特定顺序执行的任务特别有用。下面是对 gulp.series 的深入研究&#xff0c;包括其用法、特点以及注意事项。 …

Java中的转换流InputStreamReader 和 OutputStreamWriter

在Java的I/O&#xff08;输入/输出&#xff09;库中&#xff0c;InputStreamReader 和 OutputStreamWriter 是两个重要的桥接类&#xff0c;它们被用来在字节流&#xff08;InputStream 和 OutputStream&#xff09;和字符流&#xff08;Reader 和 Writer&#xff09;之间进行转…

【主题广泛|投稿优惠】2024年区块链、网络与物联网国际会议(BNIT 2024)

2024年区块链、网络与物联网国际会议&#xff08;BNIT 2024&#xff09; 2024 International Conference on Blockchain, Networks, and the Internet of Things 【重要信息】 大会地点&#xff1a;深圳 大会官网&#xff1a;http://www.icbnit.com 投稿邮箱&#xff1a;icbni…

k8s cephfs(动态pvc)

官方参考文档&#xff1a;GitHub - ceph/ceph-csi at v3.9.0 测试版本 Ceph Version Ceph CSI Version Container Orchestrator Name Version Tested v17.2.7 v3.9.0 Kubernetes v1.25.6 安装Ceph-csi Step 1 Download GitHub - ceph/ceph-csi at v3.9.0 rootsd-k8s…

揭秘智慧校园:可视化技术引领教育新篇章

随着科技的飞速发展&#xff0c;我们的生活方式正在经历一场前所未有的变革。而在这场变革中&#xff0c;学校作为培养未来人才的重要基地&#xff0c;也在不断地探索与创新。 一、什么是校园可视化&#xff1f; 校园可视化&#xff0c;就是通过先进的信息技术&#xff0c;将学…

永久免费SSL证书领取流程

一、SSL证书的前世今生 起源&#xff1a; SSL证书起源于1994年&#xff0c;当时网景公司&#xff08;Netscape&#xff09;推出了安全套接字层&#xff08;SSL&#xff0c;Secure Sockets Layer&#xff09;协议&#xff0c;这是一种加密通信协议&#xff0c;用于在客户端和服…

武汉城投城更公司与竹云科技签署战略协议,携手构建智慧城市新未来!

2024年5月16日&#xff0c;武汉城投城更公司与深圳竹云科技股份有限公司&#xff08;以下简称“竹云”&#xff09;签订战略合作协议&#xff0c;双方将深入推进产业项目合作。 签约现场&#xff0c;双方围绕产业项目合作方向、路径和内容等进行了全面深入交流。城投城更公司党…

第五届武汉纺织大学ACM程序设计竞赛 个人题解(待补完)

前言&#xff1a; 上周周日教练要求打的一场重现赛&#xff0c;时长五个小时&#xff0c;题目难度还行&#xff0c;除了部分题目前我还写不出来之外&#xff0c;大部分题都写完或补完了&#xff0c;这边给出比赛链接和我的代码&#xff08;有些是队友的&#xff09;和题解。 正…

这些项目,我当初但凡参与一个,现在也不至于还是个程序员

10年前&#xff0c;我刚开始干开发不久&#xff0c;我觉得这真是一个有前景的职业&#xff0c;我觉得我的未来会无限广阔&#xff0c;我觉得再过几年&#xff0c;我一定工资不菲。于是我开始像很多大佬说的那样&#xff0c;开始制定职业规划&#xff0c;并且坚决执行。但过去这…

Midjourney设计服装5步实操分享!(实操干货系列)

2k字讲清楚如何在有限素材的基础上&#xff0c;用MJ随机生成设计服装&#xff0c;附本人实操步骤图~ 灵感来源&#xff1a;既然Midjourney&#xff08;MJ&#xff09;能够参考图片进行绘图&#xff0c;那么&#xff0c;提供一些素材&#xff0c;借由MJ的随机成图来寻找一些服装…

香橙派Kunpeng Pro评测

有幸受邀评测香橙派与华为鲲鹏在2024年5月12刚刚联合发布的新品香橙派Kunpeng Pro。 本文将从软硬件、AI算法测试等角度简单分享一下博主拿到板子以来感受与所做的评测。 一、硬件 香橙派Kunpeng Pro实物图 处理器方面&#xff0c;香橙派Kunpeng Pro采用了4核64位armv8架构处…

gulp入门6:watch

当使用Gulp进行前端开发自动化时&#xff0c;gulp.watch 是一个非常有用的功能&#xff0c;用于监视文件或文件夹的变化&#xff0c;并在这些文件或文件夹发生变化时执行特定的任务。以下是关于 gulp.watch 的深入讲解&#xff1a; 1. gulp.watch 的基本用法 gulp.watch 的基…