32 #ifndef SHARK_MODELS_ConvexCombination_H 33 #define SHARK_MODELS_ConvexCombination_H 65 : m_w(outputs,inputs,0.0){
78 {
return "ConvexCombination"; }
82 swap(model1.m_w,model2.m_w);
88 swap(*
this,tempModel);
114 for(std::size_t i = 0; i !=
outputSize(); ++i){
121 return m_w.size1()*m_w.size2();
139 return boost::shared_ptr<State>(
new EmptyState());
144 outputs.resize(inputs.size1(),m_w.size1());
149 eval(inputs,outputs);
154 BatchInputType const& patterns, RealMatrix
const& coefficients,
State const& state, RealVector& gradient
157 SIZE_CHECK(coefficients.size1()==patterns.size1());
165 RealMatrix d =
prod(
trans(coefficients), patterns);
168 for(std::size_t i = 0; i !=
outputSize(); ++i){
170 noalias(
row(weightGradient,i)) = element_prod(
184 SIZE_CHECK(coefficients.size1() == patterns.size1());
186 derivative.resize(patterns.size1(),
inputSize());