const——支持接口和符号常量的不变性。 虚函数——提供运行期多态。 引用——支持运算符重载和简化参数传递。 运算符和函数重载——除了算法和逻辑运算符外,还包括:允许用户定义 =(赋值)、()(调用;支持函数对象(§4.3.1))、[](下标访问)和 ->(智能指针)。 类型安全链接——消除许多来自不同翻译单元中不一致声明的错误。 抽象类——提供纯接口。 模板——在经历了...
关键字
extern extern是C/C++中表明函数或全局变量作用域(可见性)的关键字,该关键字告诉编译器其修饰的符号可在本模块或者其他模块中使用。 与extern相对的是static关键字,被static修饰的符号只能在本模块使用。extern与static是对立的,不可能同时修饰同一符号。 C++中被extern "C"修饰的变量或者函数是按照C的规则进行编译和链接的,方便在C/C++...
一、计算机系统漫游
Information Is Bits + Context. 编译过程 预处理 预处理器根据以#开头的命令,修改原始的C程序。比如插入#include的头文件、进行宏(#define)的替换、删除注释等操作,生成的文件名后缀为.i。 g++ -E main.cpp > main.i #-E让g++只进行预处理操作 编译 将预处理过后的文件翻译成汇编文件,文件名...
二、信息的表示和处理
信息存储 程序将内存视为一个非常大的字节数组,称为虚拟内存。内存的每一个字节都有一个唯一的数字来标识,称为地址。所有可能地址的集合就是虚拟地址空间。 浮点运算是不可结合的。 (3.14 + 1e20) - 1e20 => 0.0 3.14 + (1e20 - 1e20) => 3.14 整数运算和浮点运算会有不同的数学属性是因为它们处理数字表示有限性的方式不同: ...
三、程序的机器级表示
机器级代码 调用者保存 vs. 被调用者保存 如下图所示,func_A中会调用func_B,调用者保存就是在func_A中调用func_B之前保存rbx寄存器值,调用funcB之后恢复rbx值;被调用者保存就是在被调用函数func_B中使用rbx寄存器之前保存rbx,在使用rbx之后恢复rbx。 访问信息 一个x86-64的CPU包含一组16个64-bit的通用目的寄存器,这些寄...
Forecasting at Scale总结
原文链接: Forecasting at scale 引言 时间序列预测的难点 通常的预测算法无法融入专家的经验和假设 算法调试难度大 时间序列预测领域的专业人才比较稀缺 希望解决的问题 降低算法门槛 适用于各种不同类型的预测问题 全自动产生大量序列的预测结果 可以将专家经验结合到预估算法中 商业时间序列的特点 图2: Facebook上创建...
Forecasting at Scale
原文链接: Forecasting at scale 摘要 预测是一项常见的数据科学任务,可帮助组织进行容量规划、目标设定和异常检测。虽然预测很重要,但是在产生可靠和高质量的预测方面存在着严重的挑战,特别是面对各种时间序列,具有时间序列建模方面专业知识的分析师相对较少时。 为了解决这些挑战,我们描述了一种实用的大规模预测方法,它将可配置模型与分析师分析相结合。我们提出了一个带可解释参数...
时间序列预测
时间序列 时间序列是按时间顺序出现的有序数列。数列就是某一统计指标的数值,比如:工厂订单数量、股票价格、网页访问量等。 时间序列预测 时间序列的待预测变量称为观察值。 时间序列预测是指:基于历史数据预测未来的观察值。预测分为2种: 点预测。预测某一时间点上的具体数值 区间预测。预测某一时间点上数值的区间。 时间序列可预测的前提: 了解时间序列观测值的影响因素 ...
量化
《Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference》 摘要 提出了一种量化方案:允许使用整型进行推理,在常用的只支持整型计算单元的硬件上可以比浮点推理效率更高。 还设计了一种训练方案,使得端到端模型精度和时延之间有更好的权衡。 引言 很广泛...
量化
量化根据是否需要重训练,分为: 感知量化训练,优点:模型准确率更好,适用于对模型压缩率和准确率要求较高的场景。 训练后量化,优点:简单易用,适用于追求高易用性和缺乏训练资源的场景。 训练后量化 Post-training Quantization, PAT,或者离线量化。 在模型训练结束后进行的量化,对训练后模型中的权重由浮点数(如floa...