Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1.09 KB

sparse_vector.md

File metadata and controls

25 lines (16 loc) · 1.09 KB

稀疏向量

在弥勒佛框架中模型参数和训练样本的特征值通过向量(util.Vector)来表示。

向量分两种类型:

  • 稠密向量,元素的key从0开始到N结束,实际值保存在切片中,使用NewVector(length)开辟新的稠密向量,稠密向量的长度在新建向量时已经指定好,无法更改。稠密向量的存储和访问相比稀疏向量更有效,但仅仅使用于非海量(百万量级一下)特征数目的机器学习问题。
  • 稀疏向量,元素的key可以是不连续的值,保存在map中,使用NewSparseVector()开辟新的稀疏向量。稀疏向量主要用于处理特征稀疏的超大规模机器学习问题。

需要注意的是

  • 请不要混合使用稀疏和稠密向量。
  • 和其他类型一样,向量是协程不安全的,请不要多个协程同时对向量进行读写。

请使用如下方法遍历向量中元素的值

for _, key := range(vector.Keys()) {
   vector.Get(key)
}

我们为向量提供了丰富的操作函数,请见util/vector.go源文件。