in transducer.py [0:0]
def process(b):
for t in range(0, T - kernel_size + 1, stride):
input_graph = gtn.linear_graph(kernel_size, C, inputs.requires_grad)
window = cpu_inputs[b, t : t + kernel_size, :].contiguous()
input_graph.set_weights(window.data_ptr())
if viterbi:
window_outputs = [
gtn.viterbi_score(gtn.intersect(input_graph, kernel))
for kernel in kernels
]
else:
window_outputs = [
gtn.forward_score(gtn.intersect(input_graph, kernel))
for kernel in kernels
]
output_graphs[b].append(window_outputs)
# Save for backward:
if input_graph.calc_grad:
input_graphs[b].append(input_graph)