Жалуется: TypeError: squeeze () не принимает аргументов ключевого слова
/ дома / убунту / anaconda3 / envs / mxnet_p36 / Библиотека / python3.6 / сайт-пакеты / NumPy / ядро / fromnumeric.py (1246) отжимают ()
По сути, минимизатор работает только для первого раунда: когда я отлаживаю, aps (словарь) и вывод f1 в первом раунде действительны. Тем не менее, апс во втором раунде становится «{}».
def F(x, *args):
positive_iterable = args[0]
N = args[1]
aps = DetectionBenchmark.compute_aps_arr_from_positive_iterable_with_power(positive_iterable, x, N)
f1 = aps['nmsth_0.3-rel'][0.5]['best_f1']['KEY_VALUE']['f1']
return -f1
def eval_with_power(input_path, M):
positive_iterable = DetectionBenchmark.iterate_positives_and_gt_nums_from_cache(input_path)
pkl_ids = os.listdir(input_path)
N = len(pkl_ids)
if M < N:
N = M
x0 = np.ones(N)
res = minimize(F, x0, args=(positive_iterable, N), method='powell', options={'xtol': 1e-8, 'disp': True, 'maxiter': 100})
return res.x
if __name__ == '__main__':
M = 100
input_path = '...'
x_star = eval_with_power(input_path, M)
print("The optimal powers given by Powell's method with ", N, " images are ", x_star, ", respectively.")
print("The optimal F score is ", -F(x_star))
Я ожидаю, что этот код будет работать без компиляции о numpy / core / fromnumeric.py ...