Cómo usar caffe para entrenar tu propio modelo en aprendizaje profundo
Enlace:/question/30091667/answer/47951446.
Fuente: Zhihu.
Los derechos de autor pertenecen al autor. Comuníquese con el autor para obtener autorización.
No se ha utilizado ni Matlab ni python. Si está acostumbrado a opencv, puede usar Memory_data. Consulte el ejemplo en este enlace: clasificación de imágenes en C++ usando Memory_data_param número 1443 bvlc/caffe github.
Para dar un ejemplo específico (me pregunto si el código de publicación está un poco fuera del temperamento de Zhihu), se divide en tres pasos:
El primer paso es construir un red:
Fase de enumeración p = prueba
Net & ltfloat & gtcaffe_test_net(argv[1], p
coffee_test_net. CopyTrainedLayersFrom(argv[2]);
Paso 2, construya los datos y agréguelos a la capa de entrada de la red:
//Crear datos de entrada
Vector& ltMat & gtmd _ images
Vector & ltint & gtmd _label;
//////Operaciones sobre datos de entrada
mat original = im read(" imágenes \ \ Lena _ grey . png "); // Las imágenes aleatorias no tienen ningún significado práctico y pueden ignorarse.
Mat *sub_img = new Mat
for(int I = 0;i<10;i++){
original(Range(i,i+ 28), Rango(yo, yo + 28)). copiar a(* sub _ img); // 28x28, puedes usar lenet directamente.
MD_images. push_back(* sub_img);
MD_labels(0);
}
Paso 3, realizar la operación de prueba. :
for(int I = 0;i<10;i++){
Vector constante & ltBlob & ltfloat & gt* & gt& amp results = caffe_test_net. reenviar precargado();