傅立叶特征使网络能够在低维域中学习高频函数

1.基于坐标的MLP

计算机视觉和图形学领域最近的一项研究用深度完全连接网络(MLP)参数化的连续函数取代了对象、场景几何体和外观(如网格和体素网格)的传统离散表示。即将低维坐标作为输入(通常是R3R^3R3中的点),并经过训练,以输出每个输入位置的形状、密度和或颜色表示(图1)。示例的MLP(a)是图像回归任务(b)的网络架构,其中网络的输入是像素坐标,输出是该像素的颜色。将坐标直接传递到网络会产生模糊的图像,而使用傅里叶特征映射对输入进行预处理可以使MLP表示更高频率的细节。

图1:傅里叶特征改善了各种高频低维回归任务的基于坐标的MLP结果,包括直接(b,c)和间接(d,e)监督。\tiny 图1:傅里叶特征改善了各种高频低维回归任务的基于坐标的MLP结果,包括直接(b,c)和间接(d,e)监督。图1:傅里叶特征改善了各种高频低维回归任务的基于坐标的MLP结果,包括直接(b,c)和间接(d,e)监督。

spectral bias

一个标准的MLP在理论和实践中都不能学习高频,在实验中,它总是倾向于学习更光滑的结果,而对高频信号的刻画差强人意。称为“光谱偏差”:

  • Arthur Jacot, Franck Gabriel, and Clément Hongler. Neural Tangent Kernel: Convergence and generalization in neural networks. NeurIPS, 2018)
  • Nasim Rahaman, Aristide Baratin, Devansh Arpit, Felix Draxler, Min Lin, Fred A. Hamprecht, Yoshua Bengio, and Aaron Courville. On the spectral bias of neural networks. ICML, 2019.
  • Ronen Basri, Meirav Galun, Amnon Geifman, David Jacobs, Yoni Kasten, and Shira Kritchman. Frequency bias in neural networks for input of non-uniform density. arXiv preprint arXiv:2003.04560, 2020.

NTK理论表明,这是因为基于标准坐标的MLP对应于具有快速频率衰减的核,这有效地阻止了它们能够表示自然图像和场景中存在的高频内容。为了克服这种光谱偏差,我们使用傅里叶特征映射将有效的NTK转换为具有可调带宽的stationary 核(stationary kernel with a tunable bandwidth)。我们提出了一种选择特定于问题的傅立叶特征的方法,该方法大大提高了MLP在与计算机视觉和图形社区相关的低维回归任务中的性能。

2.方法简述

最近的一些工作[27,44]在实验中发现,输入坐标的“位置编码变换”允许MLP表示更高频率的内容。一个特例:在输入MLP之前,将输入坐标vvv映射到γγγ
γ(v)=[a1cos(2πb1Tv),a1sin(2πb1Tv),...,amcos(2πbmTv),amsin(2πbmTv)]Tγ(v) = [a_1 cos(2πb^T_1 v), a_1 sin(2πb^T_1 v), . . . , a_m cos(2πb^T_mv), a_msin(2πb^T_mv)]^Tγ(v)=[a1​cos(2πb1T​v),a1​sin(2πb1T​v),...,am​cos(2πbmT​v),am​sin(2πbmT​v)]T
→一个stationary(平移不变)内核这种映射将NTK转换为{通过修改频率向量bj来调整NTK的频谱,MLP学习的频率范围。简单高性能策略{aj=1各向同性分布中随机采样bj,并且该分布的尺度(std)比其形状更重要。\xrightarrow[{\tiny一个 stationary(平移不变)内核}]{\tiny 这种映射将NTK转换为} \left\{\begin{array}{l} 通过修改频率向量b_j来调整NTK的频谱,MLP学习的频率范围。 \\ 简单高性能策略\left\{\begin{array}{l}a_j=1 \\各向同性分布中随机采样b_j,并且该分布的尺度(std)比其形状更重要。 \end{array}\right. \end{array}\right. 这种映射将NTK转换为一个stationary(平移不变)内核​⎩⎨⎧​通过修改频率向量bj​来调整NTK的频谱,MLP学习的频率范围。简单高性能策略{aj​=1各向同性分布中随机采样bj​,并且该分布的尺度(std)比其形状更重要。​​

贡献:

  • 我们利用NTK理论和简单的实验表明,傅里叶特征映射可以通过允许基于坐标的MLP学习更高的频率来克服它们对低频的频谱偏差(Section 4)。
  • 我们证明,具有适当比例的随机傅里叶特征映射可以显著提高基于坐标的MLP在计算机视觉和图形学中的许多低维任务中的性能(Section 5)。

3.Background and Notation

为了为我们的理论分析奠定基础,我们首先回顾经典核回归及其与最近的结果的关系,分析了深层全连通网络的训练动力学和泛化行为。在后面的部分中,我们将使用这些工具来分析基于坐标的MLP与傅立叶特征映射的训练效果。

核回归核回归是一种经典的非线性回归算法1

训练数据(X,y)∈{(xi,yi)}i=1n其中xi是输入点,yi=f(xi)是对应的标量输出标签,核回归在任意点x构造基础函数的估计值f^,如下所示:\qquad 训练数据(X,y)\in \{ (x_i,y_i) \}_{i=1}^n其中x_i是输入点,y_i=f(x_i)是对应的标量输出标签,核回归在{\color{red}任意点x}构造基础函数的估计值\widehat{f},如下所示:训练数据(X,y)∈{(xi​,yi​)}i=1n​其中xi​是输入点,yi​=f(xi​)是对应的标量输出标签,核回归在任意点x构造基础函数的估计值f​,如下所示:
f^(x)=∑i=1n(K−1y)ik(xix),(1)\widehat{f}(x)=\sum_{i=1}^{n}(K^{-1}y)_ik(x_ix), \tag{1}f​(x)=i=1∑n​(K−1y)i​k(xi​x),(1)
       其中K是一个n×n的核(Gram矩阵),其条目Kij=k(xi,xj)K_{ij}=k(x_i,x_j)Kij​=k(xi​,xj​),K是一个对称半正定(PSD)核函数,用来表示两个输入向量之间的“相似性”。直观地说,在任意点x上的核回归估计可以被看作是训练标签yiy_iyi​的加权和,使用xix_ixi​和xxx之间的相似性作为权重。

用核回归逼近深度网络
       令f是一个全连接深度网络,参数θ由高斯分布N初始化。Jacot等人2提出并由其他人扩展345的理论表明,当f中的层的宽度趋于无穷大且SGD的学习率趋于零时,模型f(x;θ)f(x;θ)f(x;θ)在训练过程中收敛到使用神经切线核(NTK)的核回归解,定义为:
kNTK(xi,xj)=Eθ∼N⟨∂f(xi;θ)∂θ,∂f(xj;θ)∂θ⟩(2)k_{NTK}(x_i,x_j)=E_{\theta \sim \mathcal{N} }\left\langle \frac{\partial f(x_i;\theta)}{\partial \theta}, \frac{\partial f(x_j;\theta)}{\partial \theta} \right\rangle \tag{2}kNTK​(xi​,xj​)=Eθ∼N​⟨∂θ∂f(xi​;θ)​,∂θ∂f(xj​;θ)​⟩(2)

当输入仅限于超球面时,MLP的NTK可以写成点积内核(核的形式为hNTK(xiTxj)形式的内核)其中标量函数hNTK:R→R核的形式为h_{NTK}(x_i^Tx_j)形式的内核)其中标量函数h_{NTK}:R→ R核的形式为hNTK​(xiT​xj​)形式的内核)其中标量函数hNTK​:R→R) 。

之前的工作表明,NTK线性系统模型可以用来近似训练期间深层网络的动力学。我们考虑一个具有L2损失和学习速率η\etaη的网络,其中网络的权值被初始化,使得网络在初始化时的输出接近于零。在Lee等人[20]所述的渐近条件下,t次训练迭代后任何数据XtestX_{test}Xtest​的网络输出可近似为:

y^(t)≈KtestK−1(I−e−ηKt)y(3)\widehat{y}^{(t)} \approx K_{test}K^{-1}(I-e^{-\eta Kt})y \tag{3}y​(t)≈Ktest​K−1(I−e−ηKt)y(3)

其中y^(t)=f(Xtest;θ)\widehat{y}^{(t)}=f(X_{test};θ)y​(t)=f(Xtest​;θ)是网络在训练迭代t时对输入点XtestX_{test}Xtest​的预测,K是X中所有训练点对之间的NTK矩阵,KtestK_{test}Ktest​是X中所有XtestX_{test}Xtest​点和训练数据集X中的所有点之间的NTK矩阵。

训练神经网络时的光谱偏差 Spectral bias when training neural networks
       让我们考虑训练误差的训练y^train(t)−y\widehat{y}_{train}^{(t)}-yy​train(t)​−y 其中,y^train(t)\widehat{y}_{train}^{(t)}y​train(t)​是网络对训练数据在迭代t次时的预测。
       由于NTK矩阵K必须是PSD(对称半正定),我们可以取其特征分解K=QΛQTK=Q \Lambda Q^TK=QΛQT,其中Q是正交的,Λ\LambdaΛ是一个对角矩阵,其值为K大于0的特征值λiλ_iλi​.那么e−ηKt=Qe−ηΛtQTe^{-\eta Kt}=Q e^{-\eta \Lambda t} Q^Te−ηKt=Qe−ηΛtQT,所以
QT(y^train(t)−y)≈QT((I−e−ηKt)y−y)=e−ηΛtQT(4)Q^T (\widehat{y}_{train}^{(t)}-y) \approx Q^T ((I-e^{-\eta Kt}) y-y) = e^{-\eta \Lambda t} Q^T \tag{4} QT(y​train(t)​−y)≈QT((I−e−ηKt)y−y)=e−ηΛtQT(4)

这意味着,如果我们考虑在NTK的特征基上的训练收敛,绝对误差的第i分量∣QT(y^train(t)−y)∣i|Q^T (\widehat{y}_{train}^{(t)}-y) |_i∣QT(y​train(t)​−y)∣i​将以ηλiηλ_iηλi​的速率近似指数衰减。
换句话说,目标函数中对应于具有更大特征值的核特征向量的分量将被更快地学习。对于传统的MLP,NTK的特征值迅速衰减[4,5,14]。这会导致非常缓慢地收敛到目标函数的高频分量,以至于标准MLP实际上无法学习这些分量,如图1所示。接下来,我们将描述一种技术,通过在将输入坐标传递给MLP之前使用输入坐标的傅里叶特征映射来解决这种缓慢收敛问题.

4 Fourier Features for a Tunable Stationary Neural Tangent Kernel可调稳定神经正切核的傅里叶特征

机器学习分析通常解决以下情况:输入是高维点(例如,图像的像素被重塑为向量),并且训练示例稀疏分布。
       相反,在这项工作中,我们考虑低维回归任务,其中输入被假定为在Rd(d为较小值)R^d\tiny(d为较小值)Rd(d为较小值)的子集中的密集坐标(例如像素坐标)。
当从内核回归的角度来看深层网络时,此设置有两个重要的含义:
       1.我们希望合成的NTK在输入域上是平移不变的,因为训练点以均匀密度分布。在将输入标准化为超球面(机器学习中常见)的问题中,点积核(比如常规NTK)对应于球面卷积spherical convolution。然而,我们问题中的输入是在欧几里得空间中密集的。输入坐标的傅里叶特征映射使合成的NTK平稳(平移不变),在输入域上充当卷积核(关于平稳核的更多讨论,请参见附录C)。

2.我们希望控制NTK的带宽,以提高训练速度和通用性。正如我们从Eqn4中看到的,具有较慢频谱衰减的“更宽”内核实现了对高频分量的更快训练收敛。
然而,我们从信号处理中知道,使用频谱过宽的内核重构信号会导致高频混叠伪影。我们在第5节中展示了傅里叶特征输入映射可以调整为介于这些“欠拟合”和“过拟合”极端之间,从而实现快速收敛和低测试误差。

Fourier features and the composed neural tangent kernel.傅里叶特征与复合神经正切核
       自Rahimi和Recht的开创性工作中引入傅里叶特征映射(通过应用Bochner定理逼近任意平稳核函数)以来,傅里叶特征映射已在许多应用中得到应用。
       为了扩展这一技术,我们使用傅里叶特征映射γ对输入坐标进行特征化,然后再通过基于坐标的MLP,并研究这对收敛速度和泛化的理论和实际影响。函数γ映射输入点v∈[0,1)dv∈ [0,1)^dv∈[0,1)d到具有一组正弦曲线的高维超球面:

       请注意,这个内核是静止的(一个只考虑点之间差异的函数)。我们可以将映射视为对核函数的傅里叶近似:bjb_jbj​是用于近似核的傅里叶基频,aj2a^2_jaj2​是相应的傅里叶级数系数。

在计算输入点的傅里叶特征后,我们将它们通过MLP得到f(γ(v);θ)f(γ(v);θ)f(γ(v);θ).如前所述,训练网络的结果可以通过使用核hNTK(xiTxj)h_{NTK}(x_i^Tx_j)hNTK​(xiT​xj​)的核回归来近似.在我们的情况下,xi=γ(vi)x_i=γ(vi)xi​=γ(vi),因此合成核变为:

因此,在这些嵌入的输入点上训练一个网络 corresponds to使用平稳组合NTK函数 hNTK ◦ hγ 进行核回归 。MLP函数将合成的NTK与每个输入训练点vi处的加权狄拉克增量进行卷积:

其中w=K−1yw=K^{−1}yw=K−1y(来自等式1)。
这使我们能够将其与信号处理进行类比,其中合成的NTK的作用类似于重建滤波器。在下一节中,我们将展示合成NTK的频率衰减决定重建信号的行为。

5 Manipulating the Fourier Feature Mapping 操控傅里叶特征映射

通过傅里叶特征映射对基于坐标的MLP的输入进行预处理,可以创建一个既稳定又可调的合成NTK。通过操纵Eqn5中aja_jaj​和bjb_jbj​参数的设置,可以显著改变收敛速度和生成网络的泛化行为。在本节中,我们将研究傅里叶特征映射在一维函数回归设置中的效果。

我们训练MLP学习区间[0, 1)上定义的信号f。我们在区间上采样cn个线性间隔的点,使用每个cthc^{th}cth点作为训练集,剩余的点作为测试集。由于我们合成的核函数是平稳的,在周期域上的线性间隔点对其进行求值会使得到的核矩阵循环:它表示卷积,并可通过傅里叶变换对角化。
       因此,我们可以通过简单地对一行进行傅里叶变换来计算合成NTK矩阵的特征值。所有实验都是在JAX[8]中实现的,NTK函数是使用神经切线库自动计算的[30]。
Visualizing the composed NTK.

我们首先可视化修改傅里叶特征映射如何改变组合NTK。
j=1,...,n/2{bj=j(1维所有的傅立叶基)aj=1/jpj=1, . . . , n/2 \left\{\begin{array}{l} bj=j(1维所有的傅立叶基) \\ aj=1/j^p \end{array}\right.j=1,...,n/2{bj=j(1维所有的傅立叶基)aj=1/jp​
       p=∞p=\inftyp=∞ 表示映射γ(v)=[cos2πv,sin2πv]Tγ(v)=[cos 2πv,sin 2πv]^Tγ(v)=[cos2πv,sin2πv]T ,其简单地将[0,1]环绕单位圆的映射(在后面的实验中称为“基本”映射)。

图2展示了变化的p对组合NTK的影响。通过构造,较低的p值会导致频域中的衰减较慢,而在空域中的内核则相应地较窄。

Effects of Fourier features on network convergence.

ground truth一维函数:我们通过从一个具有参数α的族中采样cn值,如下所示:我们采样长度为cn的标准i.i.d.高斯向量,将其第i个条目缩放1/iα,然后返回其傅里叶逆变换的实部分。我们将其称为“1/fα1/f^α1/fα噪声”信号。
在图3中,我们使用具有不同p值的傅里叶特征映射来训练MLP(4层,1024个通道,ReLU激活),以适应带限1/f11/f^11/f1噪声信号(c=8,n=32)。

图3b和3d的Loss显示,NTK线性动力学模型准确预测了修改傅里叶特征映射参数的效果。在图3c中分离训练误差的不同频率分量表明,具有较窄NTK谱的网络对于低频分量收敛更快,但对于高频分量基本上从不收敛,而具有较宽NTK谱的网络成功地在所有分量上收敛。傅里叶特征映射p=1在目标信号中存在的频率范围内具有足够的功率(因此网络在训练期间快速收敛),但在更高频率范围内功率有限(防止过拟合或混叠)。

Tuning Fourier features in practice 在实践中调整傅里叶特征

Eqn3允许我们使用组合核在验证集上估计训练网络的理论损失。对于小的一维问题,我们可以通过基于梯度的优化来选择映射参数aj(给定bj的稠密采样)来最小化这种损失。
在这种精心控制的设置(1D信号、小训练数据集、小学习率的梯度下降、非常宽的网络)中,我们发现这种优化映射在训练网络时也达到了最佳性能。有关详细信息和实验,请参考附录A.1。

在现实问题中,尤其是多维问题中,使用对傅里叶基函数进行密集采样的特征映射是不可行的;Fourier基函数的数量随训练数据点的数量而变化,训练数据点的数量随维数呈指数增长。相反,我们从参数分布中采样一组随机傅里叶特征[34]。
我们发现,精确的抽样分布族远不如分布的尺度(标准差)重要。


图4展示了对各种采样分布使用超参数扫描的这一点。
在每个子图中,我们从固定的1/fα1/f^α1/fα分布中提取一维目标信号(c=2,n=1024),并训练网络来学习它们。

我们使用从不同分布族(高斯分布、均匀分布、对数空间均匀分布和拉普拉斯分布)采样的随机傅立叶特征映射(长度为16),并扫描每个分布的尺度。也许令人惊讶的是,单是采样频率的标准偏差就足以预测测试集的性能,而不管潜在分布的形状如何。
我们在附录A.4中表明,这适用于更高维度的任务。我们还观察到,通过MLP传递这种傅立叶特征的稀疏采样与使用具有相同MLP的密集傅立叶特征集的性能相匹配,这表明了一种扩展到更高维度的策略。

6 Experiments

6.1 Compared mappings
在表1中,我们比较了基于坐标的MLP在没有输入映射的情况下的性能,以及与以下傅里叶特征映射(cos,sin are applied elementwise)的性能:

  • No
    mapping: γ(v)=v\gamma(\mathbf {v})= \mathbf {v}γ(v)=v.

  • Basic
    mapping: γ(v)=[cos⁡(2πv),sin⁡(2πv)]T\gamma(\mathbf {v})=\left[ \cos(2 \pi \mathbf {v}), \sin(2 \pi \mathbf {v}) \right] ^ \mathrm {T}γ(v)=[cos(2πv),sin(2πv)]T.

  • Positional
    encoding: γ(v)=[…,cos⁡(2πσj/mv),sin⁡(2πσj/mv),…]T\gamma(\mathbf {v})=\left[ \ldots, \cos(2 \pi \sigma ^ {j / m} \mathbf {v}), \sin(2 \pi \sigma ^ {j / m} \mathbf {v}), \ldots \right] ^ \mathrm {T}γ(v)=[…,cos(2πσj/mv),sin(2πσj/mv),…]T for j=0,…,m−1j = 0, \ldots, m-1j=0,…,m−1.
    对每个维度使用对数线性间隔频率,其中通过超参数扫描为每个任务和数据集选择比例σ。这是之前工作中使用的“位置编码”的推广[27,39,44]。请注意,这种映射是确定性的,只包含轴上的频率,这使得它自然偏向于沿轴具有更多频率内容的数据。\tiny 对每个维度使用对数线性间隔频率,其中通过超参数扫描为每个任务和数据集选择比例σ。这是之前工作中使用的“位置编码”的推广[27,39,44]。请注意,这种映射是确定性的,只包含轴上的频率,这使得它自然偏向于沿轴具有更多频率内容的数据。对每个维度使用对数线性间隔频率,其中通过超参数扫描为每个任务和数据集选择比例σ。这是之前工作中使用的“位置编码”的推广[27,39,44]。请注意,这种映射是确定性的,只包含轴上的频率,这使得它自然偏向于沿轴具有更多频率内容的数据。

  • Gaussian
    Fourier feature mapping:
    γ(v)=[cos⁡(2πBv),sin⁡(2πBv)]T\gamma(\mathbf {v})= \left[ \cos(2 \pi \mathbf B \mathbf {v}), \sin(2 \pi \mathbf B \mathbf {v}) \right] ^ \mathrm {T}γ(v)=[cos(2πBv),sin(2πBv)]T,
    where each entry in BinRm×d\mathbf B \ in \mathbb R ^ {m \times d}B inRm×d is sampled from N(0,σ2)\mathcal N(0,\sigma ^ 2)N(0,σ2)

我们通过与计算机视觉和图形社区相关的各种回归任务的实验,验证了在基于坐标的MLP中使用傅里叶特征映射的好处。我们的实验表明,与不使用映射相比,所有傅里叶特征映射都提高了基于坐标的MLP的性能,并且高斯RFF映射的性能最好。

添加链接描述


  1. Martin J. Wainwright. Reproducing Kernel Hilbert Spaces, page 383–415. Cambridge Series in
    Statistical and Probabilistic Mathematics. Cambridge University Press, 2019. ↩︎

  2. Arthur Jacot, Franck Gabriel, and Clément Hongler. Neural Tangent Kernel: Convergence and generalization in neural networks. NeurIPS, 2018. ↩︎

  3. Sanjeev Arora, Simon Du, Wei Hu, Zhiyuan Li, and Ruosong Wang. Fine-grained analysis of optimization and generalization for overparameterized two-layer neural networks. ICML, 2019. ↩︎

  4. Ronen Basri, Meirav Galun, Amnon Geifman, David Jacobs, Yoni Kasten, and Shira Kritchman. Frequency bias in neural networks for input of non-uniform density. arXiv preprint arXiv:2003.04560, 2020. ↩︎

  5. Jaehoon Lee, Lechao Xiao, Samuel Schoenholz, Yasaman Bahri, Roman Novak, Jascha Sohl Dickstein, and Jeffrey Pennington. Wide neural networks of any depth evolve as linear models under gradient descent. NeurIPS, 2019. ↩︎

傅里叶特征学习高频:Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains相关推荐

  1. Deep Learning论文笔记之(一)K-means特征学习

    Deep Learning论文笔记之(一)K-means特征学习 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  2. 深度学习(一)K-means特征学习

    Deep Learning论文笔记之(一)K-means特征学习          自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样.所以想习惯地把一些感 ...

  3. 表示学习(特征学习)

    文章目录 表示学习 特征工程与表示学习 深度学习的表示学习 注:深度学习不等于多层神经网络 什么时候用「手工提取」什么时候用「表示学习」? 关于特征 表示学习的算法 参考资料 表示学习 表示学习的基本 ...

  4. 原创《基于深度特征学习的细粒度图像分类研究综述》

    原创,未经同意,请勿转载 后记:这篇综述文章虽然是19年放出来,但是我在18年初的时候写的,当时准备找个国内期刊投一下的,后面某些原因放弃了.所以文中引用的方法都是17年以前的,有点过时了,现在又出现 ...

  5. LAA : random fourier features的又一应用

    在论文NFormer: Robust Person Re-identification with Neighbor Transformer中的Landmark Agent Attention是对ran ...

  6. (TIP-2019)基于判别特征学习的跨视角步态识别

    基于判别特征学习的跨视角步态识别 paper题目:Cross-View Gait Recognition by Discriminative Feature Learning paper是中国科学院大 ...

  7. CVPR 2020 Oral | 旷视研究院提出Circle Loss,革新深度特征学习范式

    IEEE 国际计算机视觉与模式识别会议 CVPR 2020 (IEEE Conference on Computer Vision and Pattern Recognition) 将于 6 月 14 ...

  8. CVPR 2020 Oral | 人脸识别Loss新突破: 旷视提出Circle Loss,革新深度特征学习范式...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:旷视研究院@微信公众号 旷视研究院提出用于深度特征学习的Circle Los ...

  9. 《大数据》2015年第3期“网络大数据专题”——基于特征学习的文本大数据内容理解及其发展趋势...

    基于特征学习的文本大数据内容理解及其发展趋势 袁书寒,向 阳,鄂世嘉 (同济大学计算机科学与技术系 上海 201804) 摘要:大数据中蕴含着重要的价值信息,文本大数据作为大数据的重要组成部分,是人类 ...

最新文章

  1. 使用XML创建Excel文档
  2. jdbc 日期时间相关的类型
  3. docker服务启动:service docker start和systemctl start docker两种命令有什么区别?
  4. webpack打包后的文件夹是空的_vue+webpack 打包文件 404 页面空白的解决方法
  5. 只有数学老师懂的15个泪流满面的瞬间~
  6. ARM Cotex-M4数据手册4---System Control
  7. 全平台 Chrome 浏览器 44.0.2403.89 版本下载
  8. AIR ANE(本机扩展)使用中的一些问题(Android平台)
  9. Android MTK PDAF流程
  10. hdp对应hadoop的版本_hadoop不同版本区别
  11. 如何在springboot中返回jsp页面
  12. 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
  13. Android5.1-s5p6818平台adb push 、adb install/uninstall的疑问
  14. keras使用LSTM生成文本
  15. 局域网自建对讲服务器,Windows 局域网语音对讲
  16. WPF textbox禁用输入法
  17. 浅谈面向对象和面向过程
  18. vue前端使用jsencrypt RSA 加解密插件
  19. 计算机专业择偶标准,爱情句子:说来说去我的择偶标准也就一个字——你
  20. 【dBi、dBd和dBic的含义你真的知道吗?】

热门文章

  1. minpack.error: Result from function call is not a proper array of floats.
  2. 《生命科学50讲》课程笔记10-自由意志
  3. 浅析安科瑞无线测温装置在香港科技大学配电系统中的设计应用
  4. 电机专题:控制电机介绍
  5. 【数据可视化应用】地图投影(附代码)
  6. 2021清北毕业生去向:清华博士0人出国,70%进体制、搞教育、国内深造!
  7. OnMeasure()
  8. 小i机器人用AI打造金融业认知智能企业
  9. 静态路由配置(不会配静态路由,看这里就够了!)
  10. 6-10 两个字符串穿插 (10分)pta,c