libffm
2016-10-04 16:15:55 0 举报
libffm是一个用于快速傅里叶变换(FFT)的开源C库。它提供了一种高效、可移植且易于使用的方法来计算一维和多维离散傅里叶变换。libffm的设计目标是在计算能力和内存消耗方面实现最佳性能,同时保持代码的简洁性和可读性。该库支持多种数据类型和并行计算策略,以满足不同应用场景的需求。 总之,libffm是一个功能强大、性能优越的FFT库,适用于各种需要快速傅里叶变换的科学计算和工程应用。
作者其他创作
大纲/内容
flod_loss
ffm_parameter param
tr_path/va_path/model_path
w
model
②
ffm_read_problem()
ffm_node
do_cv/on_disk
ffm_cross_validation()
nnz
opt.do_cv
N
output file
每次iter扫一遍数据集;每次读1KW条训练
Loss
2n
ffm_train_with_validation_on_disk( )
predict( )
opt.va_path
2
X
ffm_problem* tr
opt.tr_path
扫一次数据集:1)txt - bin;2)每1KW条写一次
扫两次数据集:1)统计样本数l,feature总数nnz;2)load数据到内存tr/va(X/P/Y)
random_shuffle( )
nr_flods -1 tr
cross : W
每读1KW训练一次
ffm_read_problem_to_disk()
model bin file
. . . .
g
ffm_load_model
2j
P
train( )
opt.on_disk
va_bin_path
l
样本i
global param
③
l+1
ffm_problem* te
| k | k |
ffm_problem* va
tr_bin_path
2nfk
CSR格式
①
ffm_predict( )
ffm_save_model( )
2jfk
Y
train_on_disk( )
数据格式libsvmfiled_id::feat_id::value
linear : WL
ffm_destroy_model( )
opt
wTx( )
1 tr
tr - random_shuffle - split nr_flodsnr_flods-1份 - train( );1份 - ffm_predict( )
train
Grad
tr
normalize( )
2ik
train_on_disk
bias : WB
init_model( )
parse_option()
Notes:n = max(feat_id);f = max(feild_id)一个feature占2fk个空间;一个feature-filed组合占2k个空间,前k个存w,后k个存累积梯度g
nr_flods
i i+1
argv
ffm_train_with_validation( )
tr/va
0 条评论
下一页
为你推荐
查看更多