по моему это очень сложно сделать, если ты NN используешь
Вовсе нет. Нейросети (без dropout) детерминистичны, то есть определяются входом и весами. Веса инициализируются псевдослучайными числами, то есть полностью определяются сидом. Dropout определяется им же. В алгоритме оптимизации тоже все детерминистично - градиенты посчитали, шагнули. Случайность может вылезти из-за параллелизма, когда несколько потоков работают и генерят нам данные скажем, там сложнее. В остальных случаях, если зафиксировать все сиды, то при идентичном коде, результат совпадет.