dlib: ошибочное выражение было y <output_tensor.k () - PullRequest
0 голосов
/ 04 июля 2018

dlib 19.13 - Linux Mint 18 g ++ (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609

В попытке создать XOR NN с помощью dlib, используя следующий код:

...

std::vector<matrix<unsigned long>> training_set;
std::vector<unsigned long>         training_labels;
std::vector<matrix<unsigned long>> testing_set;
std::vector<unsigned long>         testing_labels;

training_set.push_back( {0,0} );
training_set.push_back( {0,1} );
training_set.push_back( {1,0} );
training_set.push_back( {1,1} );

training_labels.push_back(0);
training_labels.push_back(1);
training_labels.push_back(1);
training_labels.push_back(0);


testing_set.push_back( {0,0} );
testing_set.push_back( {0,1} );
testing_set.push_back( {1,0} );
testing_set.push_back( {1,1} );

testing_labels.push_back(0);
testing_labels.push_back(1);
testing_labels.push_back(1);
testing_labels.push_back(0);


using net_type = loss_multiclass_log<
                            fc<1,        
                            relu<fc<3,   
                            input<matrix<unsigned long>> 
                            >>>>;

...

Он компилируется, но я получаю этот вывод при выполнении моего теста:

Ошибка обнаружена в строке 322. Обнаружена ошибка в файле ../dlib/dnn/loss.h. Обнаружена ошибка в функции double. SUBNET = dlib :: dimpl :: subnet_wrapper, dlib :: add_layer, dlib :: input>, void>, void>, void>, true, void>].

Неудачным выражением было y

1 Ответ

0 голосов
/ 04 июля 2018

Я думал, что первым параметром для класса fc dlib было количество выходных узлов. Но, как оказалось, это число возможных выходов; Таким образом, 0 и 1 - два возможных выходных значения этого слоя. После изменения с 1 на 2 и перекомпиляции сеть обучается и показывает 100% точность:

using net_type = loss_multiclass_log<
                            fc<2,  // <--- changed to 2    
                            relu<fc<3,   
                            input<matrix<unsigned long>> 
                            >>>>;
...