Я внедряю систему извлечения акустических объектов в python, и мне нужно реализовать алгоритм makefile -тиля, чтобы все блоки в системе извлечения объектов выполнялись в правильном порядке и без повторенияэтапы извлечения любых элементов.
Входными данными для этой системы извлечения признаков будет график, детализирующий связи между блоками извлечения признаков, и я хотел бы выяснить, какие функции запускать, основываясь на графике.
Примером такой системы может быть следующее:
,-> [B] -> [D] ----+
input --> [A] ^ v
`-> [C] ----+---> [E] --> output
и вызовы функций (при условии, что каждый блок X
является функцией вида output = X(inputs)
, может выглядеть примерно так:
a = A(input)
b = B(a)
c = C(a)
d = D(b,c) # can't call D until both b and c are ready
output = E(d,c) # can't call E until both c and d are ready
У меня уже есть график функций, загруженный в виде словаря с каждой словарной записью в форме (inputs, function)
, например, так:
blocks = {'A' : (('input'), A),
'B' : (('A'), B),
'C' : (('A'), C),
'D' : (('B','C'), D),
'output' : (('D','C'), E)}
Я сейчас только рисуюбланк о том, что именно делает алгоритм make-файла и как его реализовать. Мой google-fu, кажется, не очень полезенздесь тоже.Если кто-то хотя бы может дать мне указание на хорошее обсуждение алгоритма make-файла, это, вероятно, будет хорошим началом.