Я пытаюсь как личный проект изучить обратную кинематику сложных роботов (DOF> 10), используя глубокую сеть.
Таким образом, вход сети (IK _net) - это желаемая позиция и вывод углов сустава. Чтобы обучить модель, мне нужно вычислить из выходных (углы стыков) соответствующую позицию и затем минимизировать MSE между желаемой позицией и выходной позицией.
Поэтому мне нужно создать пользовательскую функцию потерь который берет выходные данные сети, чтобы вычислить ассоциированную декартову позицию и затем вычислить MSE.
Вот моя проблема, я знаю, что я мог бы "перевести" прямое kinemati c с операторами Tensorflow, но в случае из сложных роботов это не оптимально. Поэтому моя идея состояла в том, чтобы сначала обучить сеть, которая вычисляет прямую кинематику (FK _net), отображающую значения соединений в декартову позицию, и использовать ее для применения преобразования к выходу IK _net.
My Вопрос заключается в следующем: как я могу использовать свой FK _net в IK _net для расчета потерь?
Что бы я хотел, чтобы он взял выход IK _net для его передачи в FK _net и затем вернуть значение потерь.
PS: я уже пытался определить свою пользовательскую функцию потерь, лямбда-слой, а также низкоуровневую тренировку TensorFlow l oop (с градиентной лентой), но все не удалось.
Спасибо,