分类
外汇交易

指数平滑法 (ETS) 算法

备注 这个命令不包括任何应该写入 flash 分区的用户文件。请在运行此命令前手动写入这些文件,否则在写入前应单独对这些文件进行加密。

指数平滑法 (ETS) 算法

HUAWEI HiAI Foundation

HUAWEI HiAI Foundation作为基于kirin芯片基础能力平台,提供了芯片AI计算能力,为端侧AI算法业务提供了更高性能更低功耗的计算能力。

3D建模服务(3D Modeling Kit)提供材质生成、3D物体建模、自动骨骼绑定和动作捕捉四大核心能力,提升内容制作效率,降低建模成本。

HUAWEI CG Kit提供一套基于Vulkan图形接口的高性能渲染框架,具备PBR材质,模型,纹理,光照,组件等系统。此渲染框架针对华为DDK特性及实现细节进行专属设计,提供华为平台最优的3D渲染能力。此渲染框架具备二次开发能力,可以大大降低应用开发者的开发难度和复杂度,提高开发效率。
开发者需要:在开发者联盟注册开发者帐号,并在开发者管理台上创建应用。使用Android Studio IDE创建Project,并配置接入HUAWEI CG Kit依赖的SDK。根据CG Kit开发指南,实现HUAWEI CG Kit API调用以及调试。

GRE分数怎么计算?

主要来说说第二个,Section的难度系数。GRE考试是一个自适应考试,其自适应的方式为基于section的自适应考试(section-level adaptation test)。所谓基于section的自适应考试是说,考生第二个section的题目难度会由第一个section的答题情况决定。而1个Section有20个题目,每个题目的难度系数为1-5,所以每个Section难度系数为20-100。一般而言,easy模式的整体难度系数在40左右,medium模式整体难度系数在65左右,而hard模式的难度系数在80左右。

Flash 加密

对上述 eFuse 位的读写访问由 WR_DIS 和 RD_DIS 寄存器中的相应字段控制。有关 ESP32 eFuse 的详细信息,请参考 eFuse 管理器 。要使用 espefuse.py 更改 eFuse 字段的保护位,请使用以下两个命令:read_protect_efuse 和 write_protect_efuse。例如 espefuse.py write_protect_efuse DISABLE_DL_ENCRYPT 。

Flash 的加密过程

假设 eFuse 值处于默认状态,且固件的引导加载程序编译为支持 flash 加密,则 flash 加密的具体过程如下:

第一次开机复位时,flash 中的所有数据都是未加密的(明文)。ROM 引导加载程序加载固件引导加载程序。

固件的引导加载程序将读取 FLASH_CRYPT_CNT eFuse 值 ( 0b0000000 )。因为该值为 0(偶数位),固件的引导加载程序将配置并启用 flash 指数平滑法 (ETS) 算法 加密块,同时将 FLASH_CRYPT_CONFIG eFuse 的值编程为 0xF。关于 flash 加密块的更多信息,请参考 ESP32 技术参考手册 > eFuse 控制器(eFuse) > flash 加密块 [PDF]。

固件的引导加载程序使用 RNG(随机数生成)模块生成 AES-256 位密钥,然后将其写入 flash_encryption eFuse 中。由于 flash_encryption eFuse 已设置编写和读取保护位,将无法通过软件访问密钥。Flash 加密操作完全在硬件中完成,无法通过软件访问密钥。

Flash 加密块将加密 flash 指数平滑法 (ETS) 算法 的内容(固件的引导加载程序、应用程序、以及标有“加密”标志的分区)。就地加密可能会耗些时间(对于大分区最多需要一分钟)。

固件引导加载程序将在 FLASH_CRYPT_CNT (0b0000001) 中设置第一个可用位来对已加密的 flash 内容进行标记。设置奇数个比特位。

对于 开发模式 ,固件引导加载程序仅设置 DISABLE_DL_DECRYPT 和 DISABLE_DL_CACHE 的 eFuse 位,以便 UART 引导加载程序重新烧录加密的二进制文件。此外, FLASH_CRYPT_CNT 的 eFuse 位不受写入保护。

对于 发布模式 ,固件引导加载程序设置 DISABLE_DL_ENCRYPT 、 DISABLE_DL_DECRYPT 和 DISABLE_DL_CACHE 的 eFuse 位为 1,以防止 UART 引导加载程序解密 flash 内容。它还写保护 FLASH_CRYPT_CNT eFuse 位。要修改此行为,请参阅 启用 UART 引导加载程序加密/解密 。

重新启动设备以开始执行加密镜像。固件引导加载程序调用 flash 解密块来解密 flash 内容,然后将解密的内容加载到 IRAM 中。

在开发阶段常需编写不同的明文 flash 镜像并测试 flash 的加密过程。这要求固件下载模式能够根据需求不断加载新的明文镜像。但是,在制造和生产过程中,出于安全考虑,固件下载模式不应有权限访问 flash 内容。

因此需要有两种不同的 flash 加密配置:一种用于开发,另一种用于生产。详情请参考 指数平滑法 (ETS) 算法 Flash 加密设置 小节。

Flash 加密设置

提供以下 flash 加密模式:

开发模式 - 建议仅在开发过程中使用。因为在这种模式下,仍然可以将新的明文固件烧录到设备,并且引导加载程序将使用存储在硬件中的密钥对该固件进行透明加密。此操作间接允许从 flash 中读出固件明文。

本节将详细介绍上述 flash 加密模式,并且逐步说明如何使用它们。

在开发过程中,可使用 ESP32 内部生成的密钥或外部主机生成的密钥进行 flash 加密。

使用 指数平滑法 (ETS) 算法 ESP32 生成的密钥

测试 flash 加密过程需完成以下步骤:

确保您的 ESP32 设备有 相关 eFuses 中所示的 flash 加密 eFuse 的默认设置。

  • 启动时使能 flash 加密 。

  • 选择加密模式 (默认是 开发模式)。

  • 选择 UART ROM 下载模式 (默认是 启用)。请注意,对于 ESP32 芯片,该选项仅在 CONFIG_ESP32_REV_MIN 级别设置为 3 时 (ESP32 V3) 可用。

  • 选择适当详细程度的引导加载程序日志 。

  • 保存配置并退出。

启用 flash 加密将增大引导加载程序,因而可能需更新分区表偏移量。请参考 引导加载程序大小 。

备注

这个命令不包括任何应该写入 flash 分区的用户文件。请在运行此命令前手动写入这些文件,否则在写入前应单独对这些文件进行加密。

该命令将向 flash 写入未加密的镜像:固件引导加载程序、分区表和应用程序。烧录完成后,ESP32 将复位。在下一次启动时,固件引导加载程序会加密:固件引导加载程序、应用程序分区和标记为“加密”的分区,然后复位。就地加密可能需要时间,对于大分区最多需要一分钟。之后,应用程序在运行时解密并执行命令。

下面是启用 flash 加密后 ESP32 首次启动时的样例输出:

启用 flash 加密后,在下次启动时输出将显示已启用 flash 加密,样例输出如下:

使用主机生成的密钥

可在主机中预生成 指数平滑法 (ETS) 算法 flash 加密密钥,并将其烧录到 eFuse 密钥块中。这样,无需明文 flash 更新便可以在主机上预加密数据并将其烧录。该功能可在 开发模式 和 发布模式 两模式下使用。如果没有预生成的密钥,数据将以明文形式烧录,然后 ESP32 对数据进行就地加密。

非参数时间序列 (NPTS) 算法

Amazon Forecast 非参数时间序列 (NPTS) 算法是可扩展的概率基线预测器。它通过从过去的观察中采样来预测给定时间序列的未来值分布。预测受观察的值的限制。当时间序列是间歇性的(或稀疏的,包含许多 0)和突发的时,NPTS 特别有用。例如,预测时间序列具有许多低计数的单个项目的需求。Amazon Forecast 提供 NPTS 的变体,这些变体在所采样的过去的观察及其采样方式上有所不同。要使用 NPTS 变体,请选择超参数设置。

NPTS 的工作原理

与经典预测方法(如指数平滑法 (ETS) 和自回归积分滑动平均模型 (ARIMA))类似,NPTS 指数平滑法 (ETS) 算法 分别为每个时间序列生成预测。数据集中的时间序列可以具有不同的长度。观察可用的时间点称为训练范围,需要预测的时间点称为预测范围。

Amazon Forecast NPTS 预测员有以下变体:NPTS、季节性 NPTS、气候预测程式以及季节性气候预测程式。

主题

在该变体中,通过从时间序列的训练范围中的所有观察中采样来生成预测。但是,此变体不是从所有观察中均匀地采样,而是根据与需要预测的当前时间步长的距离,为每个过去的观察分配权重。特别是,它使用的权重根据过去观察的距离呈指数衰减。通过这种方式,来自最近过去的观察结果的采样概率远高于远处过去的观测结果。这就假定,对未来而言,最近的过去比遥远的过去更具指示性。您可以使用 exp_kernel_weights 超参数控制权重的衰减量。

要在 Amazon Forecast 中使用此 NPTS 变体,请将 use_seasonal_model 超参数设置为 False 并接受所有其他默认设置。

季节性 NPTS

季节性 NPTS 变体类似于 NPTS,只不过它不从所有观察中采样,而是仅使用来自过去季节 的观察。默认情况下,季节由时间序列的粒度确定。例如,对于每小时时间序列,要预测小时 t,此变体从对应于前几天的小时 t 的观察中采样。与 NPTS 类似,前一天的小时 t 处的观察获得的权重高于前几天的小时 t 处的观察。有关如何根据时间序列的粒度确定季节性的更多信息,请参阅季节性特征。

气候预测程序

要使用气候预测程序,请将 kernel_type 超参数设置为 uniform ,并将 use_seasonal_model 超参数设置为 False 。接受所有其他超参数的默认设置。

季节性气候预测程序

与季节性 NPTS 类似,季节性气候预测程序对过去季节的观察进行采样,但以均匀概率对其进行采样。

要使用季节性气候预测程序,请将 kernel_type 超参数设置为 uniform 。接受所有其他超参数的所有其他默认设置。

季节性特征

要为季节性 NPTS 和季节性气候预测程序确定季节对应的特征,请使用下表中列出的特征。此表根据粒度列出了支持的基本时间频率的派生特征。Amazon Forecast 包含这些特征时间序列,因此您不必提供它们。

时间序列的频率 用于确定季节性的特征
分钟 一小时中的分钟
小时 一天中的小时
一周中的某天
一月中的某天
月份 一年中的某天

当使用 Amazon Forecast NPTS 算法时,请考虑以下准备数据和实现最佳结果的最佳实践:

由于 NPTS 单独为每个时间序列生成预测,因此,请在调用模型进行预测时提供整个时间序列。此外,接受 context_length 超参数的默认值。这会导致算法使用整个时间序列。

如果您更改 context_length (因为训练数据太长),请确保它足够大并涵盖过去几个季节。例如,对于每日时间序列,此值必须至少为 365 天(前提是您拥有该数据量)。