SHOGUN
3.2.1
首页
相关页面
模块
类
文件
文件列表
文件成员
全部
类
命名空间
文件
函数
变量
类型定义
枚举
枚举值
友元
宏定义
组
页
src
shogun
io
streaming
StreamingFileFromSparseFeatures.h
浏览该文件的文档.
1
/*
2
* This program is free software; you can redistribute it and/or modify
3
* it under the terms of the GNU General Public License as published by
4
* the Free Software Foundation; either version 3 of the License, or
5
* (at your option) any later version.
6
*
7
* Written (W) 2011 Shashwat Lal Das
8
* Copyright (C) 2011 Berlin Institute of Technology and Max-Planck-Society
9
*/
10
#ifndef __STREAMING_FILEFROMSPARSE_H__
11
#define __STREAMING_FILEFROMSPARSE_H__
12
13
#include <
shogun/io/streaming/StreamingFileFromFeatures.h
>
14
#include <
shogun/features/SparseFeatures.h
>
15
16
namespace
shogun
17
{
22
template
<
class
T>
class
CStreamingFileFromSparseFeatures
:
public
CStreamingFileFromFeatures
23
{
24
public
:
28
CStreamingFileFromSparseFeatures
();
29
35
CStreamingFileFromSparseFeatures
(
CSparseFeatures<T>
* feat);
36
43
CStreamingFileFromSparseFeatures
(
CSparseFeatures<T>
* feat,
float64_t
* lab);
44
48
virtual
~CStreamingFileFromSparseFeatures
();
49
58
virtual
void
get_sparse_vector
(
SGSparseVectorEntry<T>
* &vec, int32_t &len);
59
69
virtual
void
get_sparse_vector_and_label
(
SGSparseVectorEntry<T>
* &vec, int32_t &len,
float64_t
&label);
70
76
void
reset_stream
()
77
{
78
vector_num
= 0;
79
}
80
82
virtual
const
char
*
get_name
()
const
83
{
84
return
"StreamingFileFromSparseFeatures"
;
85
86
}
87
88
private
:
92
void
init(
CSparseFeatures<T>
* feat);
93
94
protected
:
96
CSparseFeatures<T>
*
features
;
97
99
int32_t
vector_num
;
100
101
};
102
103
template
<
class
T>
104
CStreamingFileFromSparseFeatures<T>::CStreamingFileFromSparseFeatures
()
105
:
CStreamingFileFromFeatures
()
106
{
107
init(NULL);
108
}
109
110
template
<
class
T>
111
CStreamingFileFromSparseFeatures<T>::CStreamingFileFromSparseFeatures
(
CSparseFeatures<T>
* feat)
112
:
CStreamingFileFromFeatures
(feat)
113
{
114
init(feat);
115
}
116
117
template
<
class
T>
118
CStreamingFileFromSparseFeatures<T>::CStreamingFileFromSparseFeatures
(
CSparseFeatures<T>
* feat,
float64_t
* lab)
119
:
CStreamingFileFromFeatures
(feat,lab)
120
{
121
init(feat);
122
}
123
124
template
<
class
T>
125
CStreamingFileFromSparseFeatures<T>::~CStreamingFileFromSparseFeatures
()
126
{
127
SG_UNREF
(features);
128
}
129
130
template
<
class
T>
131
void
CStreamingFileFromSparseFeatures<T>::init
(
CSparseFeatures<T>
* feat)
132
{
133
features = feat;
134
SG_REF
(features);
135
vector_num=0;
136
137
set_generic<T>();
138
}
139
140
/* Functions to return the vector from the SparseFeatures object */
141
template
<
class
T>
142
void
CStreamingFileFromSparseFeatures<T>::get_sparse_vector
143
(
SGSparseVectorEntry<T>
*& vector, int32_t& len)
144
{
145
if
(vector_num >= features->get_num_vectors())
146
{
147
vector=NULL;
148
len=-1;
149
return
;
150
}
151
152
SGSparseVector<T>
vec=
153
features->get_sparse_feature_vector(vector_num);
154
vector=vec.
features
;
155
len=vec.
num_feat_entries
;
156
157
/* TODO. check if vector needs to be freed? */
158
159
vector_num++;
160
}
161
162
/* Functions to return the vector from the SparseFeatures object */
163
template
<
class
T>
164
void
CStreamingFileFromSparseFeatures<T>::get_sparse_vector_and_label
165
(
SGSparseVectorEntry<T>
*& vector, int32_t& len,
float64_t
& label)
166
{
167
get_sparse_vector(vector, len);
168
label=labels[vector_num];
169
}
170
171
}
172
#endif //__STREAMING_FILEFROMSPARSE_H__
SHOGUN
机器学习工具包 - 项目文档