为什么以下语法有效?我确实定义了函数layer_size()但我没有定义函数layer_sizes_test_case()

时间:2018-03-12 03:11:36

标签: python function

为什么以下python代码块有效?我确实定义了函数layer_size()但我还没有定义函数layer_sizes_test_case()。

def layer_sizes( X , Y ):

    n_x = X.shape[0]
    n_h = 4
    n_y = Y.shape[0]

return n_x , n_h , n_y

X_assess, Y_assess = layer_sizes_test_case()
(n_x, n_h, n_y) = layer_sizes(X_assess, Y_assess)

2 个答案:

答案 0 :(得分:2)

此代码之所以有效,是因为:

首先,我假设您在Andrew Ng的深度学习(平面数据分类)的第3周遇到了这段代码

检查导入语句:

from testCases_v2 import *

这行代码导入了上述功能:

def layer_sizes_test_case():
   np.random.seed(1)
   X_assess = np.random.randn(5, 3)
   Y_assess = np.random.randn(2, 3)
   return X_assess, Y_assess

在提及的链接Github链接上链接.py文件: Github link这个GIT不属于我。出于教育目的张贴在这里。

答案 1 :(得分:0)

首先,return需要位于函数layer_sizes内。所以,正确缩进你的代码。像这样:

def layer_sizes( X , Y ):

    n_x = X.shape[0]
    n_h = 4
    n_y = Y.shape[0]

    return n_x , n_h , n_y

无论如何,我还是看不到你的代码可以运作。它只是有一个语法错误,我不得不让你知道。如果你实际上意味着return应该缩进到函数内部并且搞砸了,那么我仍然没有看到你的代码能够工作的任何方式。您必须已导入具有函数layer_size_test_case()的模块,或者您可能已在此发布的代码块之上的某处定义了此函数,您必须在以后忘记它。如果您可以提供更多信息,我可以编辑我的答案以获得更多支持。