TypeError: squeeze () не принимает аргументов ключевого слова при использовании scipy.optimize.minimize - PullRequest
0 голосов
/ 29 мая 2019

Жалуется: 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 ...

...