def는 파이썬에서 함수를 정의내리는 명령.
함수가 뭔지 모르실 것 같아서 좀 더 말하면, 함수라는 건 어떤 입력값을 입력했을 때 어떤 출력값이 나오는 것. 이걸 함수라고 함. 예를 들어 f(x)= 3x라는 함수가 있다면 1을 입력했을 때 3을 출력하고, 2를 입력했을 때 6을 출력하는 함수임.
파이썬에서 함수를 정의내릴 때에는 def라고 쓴 다음 오른쪽에 함수 이름을 적음. 이때 함수 이름은 그냥, 적당한 텍스트로 적으면 됨. 여기서는 함수이름을 linear_forward라고 정했네. "linear forward"라고 적은건, 아마 linear map을 적용하고 있고, 또 forward passing을 하고 있기 때문이라고 생각됨.아무튼 그건 중요한 게 아니고 함수를 정의내리고 있음.
이어서 말하면 def라고 쓴 다음 함수이름을 적은 뒤에는 괄호 속에 입력값의 형태가 어떻게 되는지 적어야함. 아까처럼 함수가 f(x)=3x라면 입력값이 하나겠지만, f(x,y)=x+sin y라는 함수같은 거면 입력값이 두개라고 볼 수 있겠지. 즉 독립변수의 개수를 생각해야 함.
만약 f(x) = 3x를 정의하고 싶다면
def f(x)
3*x
return
f(x,y)=x+sin y를 정의하고 싶다면
def f(x,y)
x+sin y
return
라고 하면 됨. 알겠지? 흠.. 기본적인 수학을 알고 있다면 당연히 알겠지만, 아마 님은 모른다고 하겠지. 암튼 심심하니깐 설명 더 하겠음.
여기선
def linear_forward(A,W,b)
라고 적혀있네. 그러니까 이 함수를 정의할 때 세 개의 독립변수를 생각하겠다는 뜻이네. 이때 주의할 건, 아까 f(x)나 f(x,y)를 정의할 때는 x,y가 임의의 실수였어. (뭐 복소수여도 상관은 없겠지.) 근데 사실 함수의 독립변수로는 아무 거나 들어가도 됨. 정확히 말하면, 파이썬이 인식할 수 있는 어떤 형태의 자료구조여도 상관없음.