星网络 StarNet: Rewrite the Stars

news2024/11/17 3:30:56

论文题目:Rewrite the Stars

论文链接:http://arxiv.org/abs/2403.19967

代码链接:https://github.com/ma-xu/Rewrite-the-Stars

一、摘要

  揭示星操作将输入映射到高维、非线性特征空间的能力——类似于核技巧——而无需扩展网络。提出了StarNet,一个简单而强大的原型,展示了在紧凑网络结构和高效预算下出色的性能和低延迟。重新书写和重新构造星操作可以生成一个包含大约 ( d 2 ) 2 (\frac{d}{\sqrt{2}})^2 (2 d)2个线性独立维度的新特征空间
在这里插入图片描述

附录中有些图笔者认为比较具有参考意义,因此将其放于相关章节处

文章目录

    • 一、摘要
    • 二、创新点
    • 三、原理
      • 1、背景介绍
      • 2、Star Operation in One layer
      • 3、Generalized to multiple layers
      • 4、Special Cases
      • 5、Empirical Study
        • Empirical superiority of star operation
        • Decision Boundary comparison
      • 6、Open Discussions & Broader Impacts
        • I. 激活函数是否真的不可或缺?
        • II. 星操作如何与自注意力和矩阵乘法相关?
        • III. 如何优化隐式高维空间中的系数分布?
    • 四、实验Proof-of-Concept: StarNet
        • StarNet Architecture
        • Experimental Results
        • More Ablation studies
      • 五、总结

二、创新点

  • 揭示了星操作具有将特征投影到一个极高维隐式特征空间的能力,类似于多项式核函数。

  • 提出了一个概念验证模型StarNet。StarNet在无需复杂设计或精心选择的超参数的情况下取得了令人满意的性能,超越了许多高效设计。

三、原理

1、背景介绍

  通过逐元素相乘融合不同的子空间特征。为了简便起见,文中将这种范式称为“星操作”(因为逐元素相乘符号类似于星号)。

在这里插入图片描述

  如图1左侧所示。通过在一个干扰层后面堆叠多个演示块,构建了一个名为 DemoNet的简单模型。在保持其他因素不变的情况下,观察到逐元素相乘(星操作)在性能上始终优于求和,如图1右侧所示。

  星操作类似于核函数,对跨不同通道的特征进行成对乘法,特别是多项式核函数。当星操作被纳入神经网络并堆叠多个层时,每一层都会导致隐式维度复杂性的指数增长。仅仅通过几层,星操作就能在一个紧凑的特征空间内实现几乎无限的维度。

在这里插入图片描述

  图2中展示的简单可视化实验进一步说明了星操作与多项式核函数之间的联系。

2、Star Operation in One layer

  在 单 层 神 经 网 络 中,星 号 操作 通 常 写 为 ( W 1 T X + B 1 ) ∗ ( W 2 T X + B 2 ) (W^{T}_{1} X + B_{1}) ∗ (W^{T}_{2} X + B_{2}) (W1TX+B1)(W2TX+B2),表示通过逐元素乘法融合两个线性变换特征。写成矩阵的形式为 ( W 1 T X ) ∗ ( W 2 T X ) (W^{T}_{1} X) ∗ (W^{T}_{2} X) (W1TX)(W2TX),其中 W = [ W , B ] T , X = [ X , 1 ] T W = [W, B]^{T}, X = [X, 1]^{T} W=[W,B]T,X=[X,1]T

  下面以一个输出通道转换和一个单元素输入场景为例,假设 w 1 , w 2 . x ∈ R ( d + 1 ) × 1 w_{1}, w_{2}. x \in R^{(d+1) \times 1} w1,w2.xR(d+1)×1,其中 d d d是输入通道数,扩展到多个输出通道 W 1 , W 2 ∈ R ( d + 1 ) × ( d ′ + 1 ) W_{1}, W_{2} \in R^{(d+1) \times (d'+1)} W1,W2R(d+1)×(d+1),并处理多个特征元素,其中 X ∈ R d + 1 × n X \in R^{d+1} \times n XRd+1×n

  一般地,星操作可以写为:
在这里插入图片描述

  使用 i , j i,j i,j来索引通道, α \alpha α是每个项目的系数:
在这里插入图片描述

  在重新定义方程1中所描述的星操作后,可以将其展开为 ( d + 2 ) ( d + 1 ) 2 \frac{(d+2)(d+1)}{2} 2(d+2)(d+1)个不同的项,如方程4所示。除了$ \alpha_{(d+1,∶)}x^{d+1}x 外,每个项都与 外,每个项都与 外,每个项都与x 存在非线性关联,表明它们是独立的、隐含的维度。因此,在一个 存在非线性关联,表明它们是独立的、隐含的维度。因此,在一个 存在非线性关联,表明它们是独立的、隐含的维度。因此,在一个d$维空间内使用计算效率高的星操作进行计算,但在一个 ( d + 2 ) ( d + 1 ) 2 ≈ ( d 2 ) 2 \frac{(d+2)(d+1)}{2} ≈ (\frac{d}{\sqrt{2}})^2 2(d+2)(d+1)(2 d)2(考虑到 d ≫ 2 d ≫ 2 d2)的隐含维度特征空间中获得表示,显著增加了特征维度,而在单个层内不会产生额外的计算开销。

3、Generalized to multiple layers

堆叠多层,以递归方式指数增加隐含维度,接近无限

 考虑一个初始网络层的宽度为 d d d,应用一个星操作得到表达式 ∑ i = 1 d + 1 ∑ j = 1 d + 1 w 1 i w 2 j x i x j \sum^{d+1}_{i=1} \sum^{d+1}_{j=1} w^{i}_{1}w^{j}_{2}x^{i}x^{j} i=1d+1j=1d+1w1iw2jxixj,如公式3所述。这导致在一个隐含特征空间中的表示为 R ( d 2 ) 2 1 R(\frac{d}{\sqrt{2}})^{2^{1}} R(2 d)21。设 O l O_{l} Ol表示第 l l l个星操作的输出,得到:

O 1 = ∑ i = 1 d + 1 ∑ j = 1 d + 1 w ( 1 , 1 ) i w ( 1 , 2 ) j x i x j ∈ R ( d 2 ) 2 1 ,   ( 6 ) O_{1} = \sum^{d+1}_{i=1} \sum^{d+1}_{j=1} w^{i}_{(1,1)}w^{j}_{(1,2)}x^{i}x^{j} \in R(\frac{d}{\sqrt{2}})^{2^{1}}, \ (6) O1=i=1d+1j=1d+1w(1,1)iw(1,2)jxixjR(2 d)21, (6)
O 2 = W 2 , 1 T O 1 ∗ W 2 , 2 T O 1 ∈ R ( d 2 ) 2 2 ,   ( 7 ) O_{2} = W^{T}_{2,1} O_{1} * W^{T}_{2,2} O_{1} \in R(\frac{d}{\sqrt{2}})^{2^{2}} ,\ (7) O2=W2,1TO1W2,2TO1R(2 d)22, (7)
O 3 = W 3 , 1 T O 2 ∗ W 3 , 2 T O 2 ∈ R ( d 2 ) 2 3 ,   ( 8 ) O_{3} = W^{T}_{3,1} O_{2} * W^{T}_{3,2} O_{2} \in R(\frac{d}{\sqrt{2}})^{2^{3}} ,\ (8) O3=W3,1TO2W3,2TO2R(2 d)23, (8)
. . .   ( 9 ) ... \ (9) ... (9)
O l = W l , 1 T O l − 1 ∗ W l , 2 T O 1 − 1 ∈ R ( d 2 ) 2 l .   ( 10 ) O_{l} = W^{T}_{l,1} O_{l-1} * W^{T}_{l,2} O_{1-1} \in R(\frac{d}{\sqrt{2}})^{2^{l}}. \ (10) Ol=Wl,1TOl1Wl,2TO11R(2 d)2l. (10)

 通过 l l l层,可以隐式地获得一个属于 R ( d 2 ) 2 l R(\frac{d}{\sqrt{2}})^{2^{l}} R(2 d)2l的特征空间。例如,给定一个宽度为128的10层各向同性网络,通过星操作获得的隐式特征维数大约为901024,可以合理地近似为无限维度。因此,通过堆叠多个层,即使只是几层,星操作可以以指数方式显著放大隐式维度

4、Special Cases

情况I:W1和/或W2的非线性特性

情况II:WT1 X∗ X。当移除转换W2时,隐式维度数量从大约 d 2 2 \frac{d^{2}}{2} 2d2 减少到 2 d 2d 2d

情 况III:X∗ X。在这种情况下,星操作将特征从特征空间 x 1 , x 2 , ⋯ , x d ∈ R d {x^{1},x^{2},⋯,x^{d}} \in R^{d} x1,x2,,xdRd 转换为由 x 1 x 1 , x 2 x 2 , ⋯ , x d x d ∈ R d {x^{1}x^{1},x^{2}x^{2},⋯,x^{d}x^{d}} \in R^{d} x1x1,x2x2,,xdxdRd 表征的新空间。

  星操作及其特殊情况通常(尽管不一定)与空间交互集成。通常通过池化或卷积实现,如VAN(Guo等,2023年)中所示。许多这些方法强调扩展感受野的好处,但往往忽视隐式高维空间所带来的优势。其次,将这些特殊情况结合起来是可行的,如Conv2Former (Hou等,2022年)展示的,它融合了情况I和情况II的特点,以及GENet-θ− (Hu,2018年)中展示的,它融合了情况I和情况III的元素。最后,尽管情况II和情况III可能不会显著增加单个层中的隐式维度,但线性层的使用(主要用于通道通信)和跳跃连接可以在多个层中累积实现高隐式维度

5、Empirical Study

Empirical superiority of star operation

  如图1 所示,作者构建了一个各向同性网络,称为DemoNet,用于进行演示。DemoNet 设计简单明了,包括一个通过卷积层将输入分辨率降低16 倍的层,然后是一系列用于特征提取的同质演示块(参见图1,左侧)。在每个演示块中,我们应用星操作或求和操作来融合来自两个不同分支的特征。通过改变网络的宽度和深度,探索了每种操作的独特属性。DemoNet 的实现细节在附录的算法1 中提供。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

  从表2 和表3 中,可以看到星操作在网络深度和宽度不同的情况下始终优于求和操作。这一现象验证了星操作的有效性和优越性。此外,观察到随着网络宽度的增加,星操作带来的性能增益逐渐减少。然而,在深度变化的情况下没有观察到类似的现象。这种行为上的差异暗示了两个关键见解:1)如表2 所示,星操作带来的性能增益逐渐减少并非模型尺寸增大的结果;2)基于此,这意味着星操作本质上扩展了网络的维度,从而减少了扩展网络带来的增量收益
在这里插入图片描述

Decision Boundary comparison

  通过视觉分析和辨别星号和求和操作之间的差异。为此,在玩具2D月球数据集[43] 上可视化这两种操作的决策边界,该数据集包含两组月球形状的2D点。在模型配置方面,从演示块中消除了归一化和卷积层。鉴于这个数据集相对简单的特性,将模型配置为宽度为100,深度为4

  图2(顶行)展示了由求和和星号操作勾勒出的决策边界。与求和操作相比,星号操作勾勒出了一个更加精确和有效的决策边界。决策边界的差异并非源自非线性,因为这两种操作都在各自的构建模块中包含激活函数。主要区别在于星号操作能够达到极高的维度。图2(底行)中展示了带有高斯核和多项式核的SVM的决策边界(使用scikit-learn 软件包实现[43])。符合预期,星号操作产生的决策边界与多项式核的非常相似,而与高斯核明显不同
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  通过从DemoNet中移除所有激活函数进行实验,从而创建一个无激活函数的网络。表4中的结果表明,当移除所有激活函数时,求和操作的性能显著下降,从66.2%降至32.4%。相比之下,星操作仅在准确率下降了仅1.2%,表明消除激活函数对星操作影响很小

6、Open Discussions & Broader Impacts

I. 激活函数是否真的不可或缺?

  星操作还包含非线性,这是区分核函数与其他线性机器学习方法的特征。研究中的初步实验展示了在神经网络中消除激活层的潜在可行性

II. 星操作如何与自注意力和矩阵乘法相关?

  自注意力利用矩阵乘法生成 R n × n R^{n \times n} Rn×n中的矩阵。可以证明自注意力中的矩阵乘法与逐元素乘法具有相似的属性(非线性和高维度)。矩阵乘法促进了全局交互,与逐元素乘法形成对比。然而,矩阵乘法改变了输入形状,需要额外的操作(例如池化,另一轮矩阵乘法等)来调整张量形状,这是逐元素乘法所避免的复杂性。PolyNL [2]在这方面提供了初步努力。作者分析可能为自注意力的有效性提供新的见解,并有助于重新审视神经网络中的“动态”特征[7, 8, 12]。

III. 如何优化隐式高维空间中的系数分布?

  传统神经网络可以为每个通道学习一组不同的权重系数,但星操作中每个隐式维度的系数,类似于核函数,是固定的。例如,在多项式核函数 k ( x 1 , x 2 ) = ( γ x 1 ⋅ x 2 + c ) d k(x_{1},x_{2}) =(\gamma x_{1} \cdot x_{2} + c)^{d} k(x1,x2)=(γx1x2+c)d中,系数分布可以通过超参数进行调整。在星操作中,虽然权重 W 1 W_{1} W1 W 2 W_{2} W2是可学习的,但它们仅提供有限的范围来微调分布,与传统神经网络中为每个通道定制系数的做法相反。这种约束可能解释了为什么极高维度只会带来适度的性能改进。值得注意的是,跳跃连接似乎有助于平滑系数分布 [57],而密集连接(如DenseNet [32])可能提供额外的好处。此外,使用指数函数可以提供到隐式无限维度的直接映射,类似于高斯核函数。

四、实验Proof-of-Concept: StarNet

  引入StarNet作为一个概念验证模型。StarNet的特点是极其简约的设计和人为干预的显著减少。尽管简单,StarNet展示了出色的性能,突显了星操作的有效性。

StarNet Architecture

  StarNet由一个4阶层次结构构建而成,利用卷积层进行下采样和修改后的demo块进行特征提取。为了满足效率要求,用Batch Normalization替换Layer Normalization,并将其放置在深度卷积之后(在推断期间可以融合)。受MobileNeXt[66]的启发,在每个块的末尾加入了深度卷积DW Conv。通道扩展因子始终设置为4,在每个阶段网络宽度翻倍。在demo块中,GELU激活被替换为ReLU6,遵循MobileNetv2 [46]的设计。StarNet框架如图3所示。仅变化块数和输入嵌入通道数以构建
不同大小的StarNet,详见表5。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Experimental Results

  遵循DeiT的标准训练配方 [53],以确保在训练StarNet模型时进行公平比较。所有模型均从头开始训练300个epochs,使用AdamW优化器 [39],初始学习率为3e-3,批量大小为2048。详细的训练细节请参见补充材料。为了进行基准测试,将PyTorch模型转换为ONNX格式 [13],以便在CPU(Intel Xeon CPU E5-2680 v4 @ 2.40GHz)和GPU
(P100)上进行延迟评估。此外,使用CoreML-Tools [1]在iPhone13上部署模型,以评估移动设备上的延迟。这些基准测试的详细设置也可在补充材料中找到。
在这里插入图片描述

在这里插入图片描述

  StarNet在iPhone 13设备上仅用0.7秒就实现了73.5%的top-1准确率,在相同的延迟下超过MobileOne-S0 2.1%(73.5% vs. 71.4%)。当将模型扩展到1G FLOPs预算时,StarNet继续展现出卓越的性能,超过MobileOne-S2 1.0%,并超过EdgeViT-XS0.9%,同时速度快三倍(1.0毫秒 vs. 3.5毫秒)。

在这里插入图片描述

  图4 进一步说明了各种模型之间的延迟-准确性权衡。如果能进一步提升StarNet的性能?相信通过仔细的超参数优化,利用表1中的见解,并应用更多的epochs或蒸馏等训练增强措施,可以大幅提升StarNet的性能。

More Ablation studies

替换星操作
在这里插入图片描述

  移除所有星操作导致显著的性能下降,观察到3.1%的准确率下降。星操作对性能的影响在模型的第一和第二阶段中似乎很小。这一观察是合乎逻辑的。由于ReLU6激活具有非常窄的宽度,一些特征会变为零。在星操作的背景下,这导致其隐式高维空间中的许多维度也变为零,从而限制了其全部潜力。然而,在最后两个阶段(更多通道)中,其贡献变得更加显著,分别导致1.6%和1.6%的改进。表7中的最后三行也验证了该结论。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

星操作的延迟影响
在这里插入图片描述

  进行了基准测试,比较了用求和替换所有星操作的延迟,结果详见表8。从观察到延迟影响取决于硬件。在实践中,星操作相对于求和操作在GPU和iPhone设备上并未导致额外的延迟。然而,在CPU上,求和操作比星操作稍微更有效率(例如,对于StarNet-S4,8.4ms vs.9.4ms)。鉴于显著的性能差距,CPU上的这种轻微延迟开销可以被视为可以忽略的。

激活位置的研究
在这里插入图片描述

x 1 x_{1} x1 x 2 x_{2} x2被用来表示两个分支的输出,其中StarNet-S4 作为实验模型。研究了四种在StarNet中实现激活函数的方法:1)不使用激活,2)激活两个分支,3)在星操作后激活,4)激活单个分支(默认做法)。如表9所示的结果表明,仅激活一个分支可以获得最高准确率,达到了78.4%。从StarNet 中完全移除激活(除了干细胞层中的一个)仅导致准确率下降了2.8%,降至75.6%,这一性能仍然与表6中一些强基线相竞争。这些发现与表4一致,强调了无激活网络的潜力。

关于星操作块设计的研究
  在StarNet中,星操作通常被实现为 a c t ( W 1 T X ) ∗ ( W 2 T X ) act(W^{T}_{1} X) ∗ (W^{T}_{2} X) act(W1TX)(W2TX)。这种标准方法使得StarNet-S4的准确率达到了84.4%。然而,也存在替代实现方式。作者尝试了一种变体: ( W 2 T a c t ( W 1 T X ) ) ∗ X (W^{T}_{2} act(W^{T}_{1} X)) ∗ X (W2Tact(W1TX))X,其中 W 1 ∈ R d × d ′ W_{1} \in R^{d \times d′} W1Rd×d被设计用于扩展宽度,而 W 2 ∈ R d ′ × d W_{2} \in R^{d′ \times d} W2Rd×d将其恢复回 d d d。这种调整导致了仅一个分支的转换,而另一个保持不变。变化 d ′ d′ d以确保与StarNet-S4相同的计算复杂度。通过这样做,性能从78.4%下降到了74.4%。虽然更好和谨慎的设计可能会缓解这种性能差距(见附录),但准确率上的显著差异强调了最初实现中利用星操作能力的有效性,并强调了在星操作中转换两个分支的关键重要性

五、总结

  作者重新定义了星操作,揭示出它们强大的表征能力源自隐含的高维空间。在许多方面,星操作反映了多项式核函数的行为。通过经验、理论和可视化方法得到了严格验证,结果在数学和理论上是一致的。并引入了一个简单的原型网络StarNet。StarNet的出色性能,不依赖于复杂的设计或精心选择的超参数,为对星操作的探索开辟了许多潜在的研究方向。

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

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

相关文章

第7章 用户输入和 while 循环

第7章 用户输入和 while 循环 7.1 函数 input()的工作原理7.1.1 编写清晰的程序7.1.2 使用 int()来获取数值输入7.1.3 求模运算符 7.2 while 循环简介7.2.1 使用 while 循环7.2.2 让用户选择何时退出7.2.3 使用标志7.2.4 使用 break 退出循环7.2.5 在循环中使用 continue7.2.6 …

Django DetailView视图

Django的DetailView是一个用于显示单个对象详情的视图。下面是一个使用DetailView来显示单个书籍详情的例子。 1,添加视图 Test/app3/views.py from django.shortcuts import render# Create your views here. from django.views.generic import ListView from .m…

deepin V23 新进展!deepin 成功适配 MilkV Mars

内容来源:deepin(深度)社区 deepin-ports SIG(Special Interest Group,特别兴趣小组),deepin(深度)社区积极与各大厂商展开合作,参与对 RISC-V 架构和设备的适…

鸿蒙原生开发——轻内核A核源码分析系列三 物理内存(2)

3.1.2.3 函数OsVmPhysLargeAlloc 当执行到这个函数时,说明空闲链表上的单个内存页节点的大小已经不能满足要求,超过了第9个链表上的内存页节点的大小了。⑴处计算需要申请的内存大小。⑵从最大的链表上进行遍历每一个内存页节点。⑶根据每个内存页的开始…

10秒变鬼短视频:四川鑫悦里文化传媒有限公司

10秒变鬼短视频:创意与惊悚的完美融合 在短视频的世界里,创新与独特性 节奏、巧妙的剪辑和惊悚的氛围,成为了许多观众喜爱的对象。四川鑫悦里文化传媒有限公司将探讨“10秒变鬼”短视频的创作技巧、受众心理以及其对短视频行业的启示。 一…

人脸识别系统---多人脸提取

一、多人脸提取 1.导包、设置窗口、选择文件夹里图片的函数和单人脸提取一致,此处省略(详情看‘单人脸提取’) 2.对图像进行处理,在窗口画布上显示出来 2.1定义名为tq的函数,在函数内部声明了三个全局变量file_path…

[Spring Boot实战] 如何快速地创建spring boot项目

文章目录 一、背景说明二、环境说明三、创建步骤3.1 选择项目JDK版本和Initializer服务地址3.2 设置项目的元数据3.3 引入依赖3.4 选择项目路径 四、额外的工作五、问题5.1 为什么使用Lombok? 一、背景说明 使用spring boot创建JAVA项目,是目前比较主流…

数据结构与算法笔记:基础篇 - 红黑树(下):掌握这些技巧,你也可以实现一个红黑树

概述 红黑树是一个让人又爱又恨的数据结构,“爱” 是因为它稳定、高性能,“恨” 是因为实现起来实在太难了。本章讲红黑树的实现,对于基础不太好的同学,理解起来可能会有些困难。但是,我觉得没有必要去死磕它。 为什…

一个公用的数据状态修改组件

灵感来自于一项重复的工作,下图中,这类禁用启用、审核通过不通过、设计成是什么状态否什么状态的场景很多。每一个都需要单独提供接口。重复工作还蛮大的。于是,基于该组件类捕获组件跳转写了这款通用接口。省时省力。 代码如下:…

专业学习|博弈论-课程沿革

学习来源:北京大学刘霖《博弈论》MOOC公开课 备注:仅做学习分享,请勿转载,转载必究! (一)博弈论的预备知识 基本的微积分的知识和概率论的知识。简单的说会求导数,会求简单的积分&am…

文案策划日常大公开:掌握这些技巧,让你工作效率翻倍

本周的工作和生活安排得满满当当,但这些看似繁重的任务,其实都是我利用碎片化时间高效完成的。 这里和大家分享一下,我是如何在这忙碌的一周中,既完成本职工作又享受生活的。 本周工作日常汇总: 1. 品牌小红薯笔记&…

Java高阶数据结构-----并查集(详解)

目录 🧐一.并查集的基本概念&实例: 🤪二.并查集代码: 😂三:并查集的一些习题: A.省份数量 B.等式方程的可满足性 🧐一.并查集的基本概念&实例: 并查集概念&…

5.3 数据模型设计总结

概述: 数据模型设计是指根据需求和目标设计出合适的数据模型的过程。数据模型是对现实世界中数据的抽象和表示,它定义了数据的结构、关系和约束。数据模型设计的目标是保证数据的一致性、完整性和可用性,同时满足系统性能和可扩展性的要求。…

Python基础教程(十二):模块

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

【Java】解决Java报错:IOException during File Operations

文章目录 引言一、IOException的定义与概述1. 什么是IOException?2. IOException的常见触发场景3. 示例代码 二、解决方案1. 检查文件是否存在2. 使用try-with-resources语句3. 捕获和处理IOException4. 使用NIO进行文件操作 三、最佳实践1. 检查文件状态2. 使用try…

为什么你应该本地化你的软件

本地化您的软件是一项战略举措,可以显著提高其成功率和影响力。以下是您应该投资于软件本地化的几个令人信服的原因: 扩大您的市场覆盖范围 通过本地化您的软件,您可以开拓新市场并接触到更广泛的受众。许多用户更喜欢甚至需要他们母语的软…

(十二)人工智能应用--深度学习原理与实战--模型编译及训练参数的选择

神经网络模型的编译实际上是为网络指定几个非常重要的运行参数,包括优化器、损失函数(误差函数】和评价指标,这三者也代表着神经网络的核心运行机制----通过损失函数来计算网络误差、通过优化器来调整网络参数以降低误差、通过评价指标来衡量网络的性能。神经网络训练时除了…

【漏洞复现】Rejetto HTTP文件服务器 未授权RCE漏洞(CVE-2024-23692)

0x01 产品简介 Rejetto HTTP File Server(HFS)是一个基于HTTP协议的文件服务器软件,旨在为用户提供简单、轻量级且易于使用的文件共享解决方案。功能强大、易于使用的文件服务器软件,无论是个人使用还是团队协作,HFS都能满足用户的需求&…

平价蓝牙耳机推荐有哪些?四款平价顶尖机型盘点

对于预算有限但又追求高品质音效的朋友们,平价蓝牙耳机成为了一个非常实用的选择,在市面上琳琅满目的蓝牙耳机中,挑选出性价比极高且性能出众的款式并不容易,作为一个多年的蓝牙耳机发烧友,接下来我就将为大家盘点四款…

《精通ChatGPT:从入门到大师的Prompt指南》第7章:创意写作

第7章:创意写作 7.1 角色设定 角色设定是创意写作中最关键的环节之一。成功的角色设定能够让读者对故事产生共鸣,使故事更加生动有趣。角色不仅仅是情节发展的载体,更是读者情感的投射对象。因此,深入了解如何设定一个生动而有深…