Я написал код для глубокого обучения, используя C API Tensorflow.Попробовав что-то, оно наконец работает.Однако это кажется довольно медленным.Я использую следующую команду из заголовочного файла C API:
TF_CAPI_EXPORT extern void TF_SessionRun(
TF_Session* session,
// RunOptions
const TF_Buffer* run_options,
// Input tensors
const TF_Output* inputs, TF_Tensor* const* input_values, int ninputs,
// Output tensors
const TF_Output* outputs, TF_Tensor** output_values, int noutputs,
// Target operations
const TF_Operation* const* target_opers, int ntargets,
// RunMetadata
TF_Buffer* run_metadata,
// Output status
TF_Status*);
После запуска моего кода для тестирования я обнаружил, что эта функция отвечает за 95% времени вычислений.В моем случае весь процесс выполнения логического вывода за один раз занимает примерно 0,29 секунды, а время, необходимое для функции TF_SessionRun, всегда составляет около 0,27 - 0,28 секунды.Граф имеет 1780 операций.Мой вызов функции выглядит следующим образом:
TF_SessionRun(session,nullptr,&inputs[0],&input_values[0],inputs.size(),&outputs[0],&output_values[0],outputs.size(),nullptr,0,nullptr,status);
Как видите, я не использовал некоторые аргументы:
const TF_Buffer* run_options
const TF_Operation* const* target_opers
TF_Buffer* run_metadata
К сожалению, я не нашел ни одного примера, использующего эти аргументы, и я неуверен, может ли их использование ускорить вывод.
Мой вопрос: есть ли у кого-нибудь многообещающее представление о том, как ускорить процесс?
Заранее спасибо!