Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Тоже пока не очень понял проблему… HDF5 переписывается в .pb на ура скриптом на коленке (ну или тем же keras_to_tensorflow.py если лень).
Дальше оно прекрасно грузится в плюсах, как-нибудь так:
if (!( status = ReadBinaryProto(env, "graph.pb", &grdef) ).ok()) goto boom;
if (!( status = session->Create(grdef) ).ok()) goto boom;
...
if (!( status = session->Run(inputs, ..., &outputs) ).ok()) goto boom;
...
return 0;
boom:
printf("BOOM: %s \n", status.ToString());
return -1;Многослойные и сильно-мудреные вещи делаются вполне себе аналогично.
А сам безель штука капризная и отказался собираться под UE4Поясните пожалуйста, что Вы имеете ввиду под сборкой bazel под UE4?
TF довольно большая и громоздкая штуковина, а мне хотелось чего-то более легкого и производительногоСравнение производительности в студию. Вы вероятно спутали что-то, не уж то Вам удалось написать более производительный инфиренс (на CPU?) нежели у ребят из Google?
Есть Intel DAAL, который наверняка используется в вашем питоне, если это anaconda. Так что вряд-ли получится что-то ускорить если написать SIMDов самому.
tensorflow_cc_inference::Inference cnn_(model_file_name, "ImageTensor", "SemanticPredictions");
int64_t dims[] = {1, target_h, target_w, 3};
auto in = tensorflow_cc_inference::Tensor<uint8_t>(
dims, 4, my_image.data, NULL /*TestDeallocator*/, NULL);
auto out = cnn_.Run<int64_t>(in);
auto shape = out.Shape();
cv::Mat res(target_h, target_w, CV_32FC1, cv::Scalar(0));
int64_t* out_data = out.Data();
Как я Keras на C++ запускал