Мне пришлось внести несколько изменений, чтобы заставить это работать, и смоделировать «d1», но это работает для меня с Numba. Эта основная проблема, которая вызвала ошибку времени выполнения, заключается в том, что np.sum не работает в списке с Numba, хотя он работал правильно, когда я закомментировал @jit. Обертывание sumdist с помощью np.array () решает эту проблему.
d1 = [np.arange(27).reshape(3,3,3), np.arange(27,54).reshape(3,3,3)]
@njit
def list_of_distance(d1): #d1 was declared as List()
list_of_dis = [] #List() Changed - would not compile
for k in range(len(d1)):
sum_dist = [] #List() #List() Changed - would not compile
for j in range(3):
s = np.sum(np.square(np.reshape(d1[k][:,:,j].copy(),d1[k][:,:,j].shape[0]*d1[k][:,:,j].shape[1]))) #Added np. to "square"
sum_dist.append(s) # square each value in the resulting list (dimenstion)
distance = np.sum(np.array(sum_dist)) # adding the total value for each dimension to a list - Wrapped list in np.array
list_of_dis.append(np.round(np.sqrt(distance))) # Sum the values to get the total squared values of residual images
return list_of_dis
list_of_distance(d1)
Out[11]: [79.0, 212.0]