what science for espaƱol doing datos data ciencia machine-learning neural-network deep-learning caffe

machine-learning - science - python for data analysis



Caffe Unknown bottom blob (1)

Estoy trabajando con caffe framework y me gustaría entrenar a la siguiente red:

Cuando ejecuto el siguiente comando:

tren caffe --solver solver.prototxt

El error que arroja:

`F0802 14:31:54.506695 28038 insert_splits.cpp:29] Unknown bottom blob ''image'' (layer ''conv1'', bottom index 0) *** Check failure stack trace: *** @ 0x7ff2941c3f9d google::LogMessage::Fail() @ 0x7ff2941c5e03 google::LogMessage::SendToLog() @ 0x7ff2941c3b2b google::LogMessage::Flush() @ 0x7ff2941c67ee google::LogMessageFatal::~LogMessageFatal() @ 0x7ff2947cedbe caffe::InsertSplits() @ 0x7ff2948306de caffe::Net<>::Init() @ 0x7ff294833a81 caffe::Net<>::Net() @ 0x7ff29480ce6a caffe::Solver<>::InitTestNets() @ 0x7ff29480ee85 caffe::Solver<>::Init() @ 0x7ff29480f19a caffe::Solver<>::Solver() @ 0x7ff2947f4343 caffe::Creator_SGDSolver<>() @ 0x40b1a0 (unknown) @ 0x407373 (unknown) @ 0x7ff292e40741 __libc_start_main @ 0x407b79 (unknown) Abortado (`core'' generado)

El código es (train2.prototxt):

name: "xxxxxx" layer { name: "image" type: "HDF5Data" top: "image" top: "label" hdf5_data_param { source: "h5a.train.h5.txt" batch_size: 64 } include { phase: TRAIN } } layer { name: "conv1" type: "Convolution" bottom: "image" top: "conv1" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 96 kernel_size: 11 stride: 4 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "norm1" type: "LRN" bottom: "conv1" top: "norm1" lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } layer { name: "pool1" type: "Pooling" bottom: "norm1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "norm2" type: "LRN" bottom: "pool1" top: "norm2" lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } } layer { name: "conv3" type: "Convolution" bottom: "norm2" top: "conv3" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 384 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "pool2" type: "Pooling" bottom: "conv3" top: "pool2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "improd3" type: "InnerProduct" bottom: "pool2" top: "improd3" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } inner_product_param { num_output: 1000 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "accuracy" type: "Accuracy" bottom: "improd3" bottom: "label" top: "accuracy" include { phase: TEST } } layer { name: "loss" type: "SoftmaxWithLoss" bottom: "improd3" bottom: "label" top: "loss" }

El solver.prototxt:

net: "train2.prototxt" test_iter: 100 test_interval: 1000 # lr for fine-tuning should be lower than when starting from scratch base_lr: 0.001 lr_policy: "step" gamma: 0.1 # stepsize should also be lower, as we''re closer to being done stepsize: 20000 display: 20 max_iter: 100000 momentum: 0.9 weight_decay: 0.0005 snapshot: 10000 snapshot_prefix: "caffe" solver_mode: CPU

Estoy atascado y no puedo comenzar el entrenamiento de la red porque este problema.


Es porque, incluso si está intentando ejecutar la fase de Train , la fase de Test también se usará para la validación. Como no hay una capa de datos de entrada para la fase de prueba, la capa conv1 no puede encontrar la image blob de entrada. Se está llamando a la fase de Test porque ha definido los parámetros test_* en el solucionador y la phase: TEST en algunas de las capas en train2.prototxt. Eliminar los parámetros mencionados anteriormente del solucionador y las capas que representan la fase de TEST lo ayudará a ejecutar la capacitación sin problemas.