TypeError:“模块”对象不可用于一个代码,而不能用于另一代码

时间:2018-08-24 11:37:35

标签: ipython jupyter-notebook

您好,编写如下代码:

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 个答案:

答案 0 :(得分:0)

您好,问题已解决。 我们必须使用:

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。 澄清:numpy中的log函数的名称为np.log