template <typename T>
caffe::NetParameter ModifyNet(string nomFichier,T &y,string layerName,int numOutput)
{
caffe::NetParameter param;
caffe::NetParameter param2;
fstream fd(nomFichier.c_str(), ios::binary | ios::in);
google::protobuf::io::IstreamInputStream input1(&fd);
if (!fd.is_open())
cout << "File not found: " << nomFichier;
bool success = google::protobuf::TextFormat::Parse(&input1, ¶m);
for (int kSize = 0; kSize < param.input_size(); kSize++)
{
*param2.add_input() = param.input(kSize);
}
for (int j = 0; j < param.input_dim_size(); j++)
{
param2.add_input_dim(param.input_dim(j));
}
param2.set_name(param.name());
for (int nlayers = 0; nlayers < param.layer_size(); nlayers++)
{
caffe::LayerParameter *couche = new caffe::LayerParameter(param.layer(nlayers));
if (couche->name() == layerName)
{
couche->mutable_convolution_param()->set_num_output(numOutput);
}
*param2.add_layer() = *couche;
}
string s;
return param2;
}