TypeError: объект 'module' не может быть вызван для одного кода, но не для другого

Ilse спросил: 31 июля 2018 в 09:57 в: ipython

Привет, когда пишу код вроде:

log_likelihood = np.sum(np.dot(Y.T, log(AL)), axis=0)

У меня есть ошибка вроде:

TypeError                                 Traceback (most recent call last)
<ipython-input-888-ac02c17e518d> in <module>()
----> 1 parameters = L_layer_model(train_x, train_y, layers_dims, num_iterations = 7, print_cost = True)<ipython-input-887-d06b73757846> in L_layer_model(X, Y, layers_dims, learning_rate, num_iterations, print_cost)
     37         # Compute cost.
     38         ### START CODE HERE ### (≈ 1 line of code)
---> 39         cost = compute_cost(AL, Y)
     40         ### END CODE HERE ###
     41 <ipython-input-880-a836c239755d> in compute_cost(AL, Y)
     81 
     82     #log_likelihood = -np.log(AL[range(m),(Y.argmax(axis=1))])
---> 83     log_likelihood = np.sum(np.dot(Y.T, log(AL)), axis=0)
     84         #log_likelihood = -1 * np.sum(1 * np.log(AL[range(m),(Y.argmax(axis=1))]))
     85     #print("Y argmax = " + str(Y.argmax(axis=1)))TypeError: 'module' object is not callable

Но при написании моего кода:

log_likelihood = -np.log(AL[range(m),(Y.argmax(axis=1))])

Затем моя программа выполняется без каких-либо ошибок. В верхней части программы я уже добавил

import math
import logging as log

Но это не похоже, решает мою проблему! Кто-нибудь знает, в чем проблема?


1 ответ

Ilse ответил: 01 августа 2018 в 07:14

Здравствуйте, проблема была решена. Мы должны использовать:

log_likelihood = np.sum(np.dot(Y.T, np.log(AL)), axis=0)

Вместо:

log_likelihood = np.sum(np.dot(Y.T, log(AL)), axis=0)

Итак, используя np перед log.Clarification: имя функции журнала в numpy - np.log