만든 모델의 내부 module 목록을 보고 싶을 때
model.named_children #한 단계 아래 모듈만 보여줌
model.named_modules #전체 하위 module을 보여줌
만약 module만 필요하다면??
model.modules()
model.children()
위 함수는 module만 가져온다.
특정 모듈만 가져오고 싶다면??
model.get_submodule(이름)
바로 밑에 단의 모듈들을 검색 할 수 있기 때문에 더 밑에 있는 모듈을 가져오려면 . 으로 연결 시켜서 가져와야한다.
특정 파라미터도 볼 수 있지 않을까??
model.named_parameters()
이것 또한 이름 없이 parameter만 가져올 수 있지만 그러면 어떤 파라미터에 속해있는지 알수없기 때문에 보통 쓰지 않는다.
특정 파라미터 가져오기
model.get_parameter("파라미터")
이것 또한 위에 get_submodule할때와 같은 인자를 넣어주면 된다.
특정 버퍼 보기
model.named_buffers() #Name과 함께 반환
model.buffers() #Buffer만 반환
특정 버퍼 가져오기
model.get_buffer("")
Docstring
PyTorch에서 함수나 클래스의 문서화는 docstring을 이용합니다. Docstring은 함수, 클래스, 메서드 등의 코드 개체에 대한 문서화를 가능하게 합니다.
Docstring은 코드 개체의 정의 바로 아래에 적히며, ''' 또는 """로 감싸진 문자열입니다. 일반적으로 다음과 같은 형식을 따릅니다.
def my_function(arg1, arg2):
"""
One-line description of my function.
A longer, more detailed description of my function.
This may include information about what the function does,
what arguments it expects, what values it returns, and so on.
Args:
arg1 (type): Description of arg1.
arg2 (type): Description of arg2.
Returns:
type: Description of the return value.
"""
# Code for my function goes here.
Docstring의 첫 번째 줄은 함수 또는 클래스에 대한 간단한 요약 설명이며, 한 줄 이상일 경우 마지막 줄에 마침표를 붙입니다.
Docstring의 두 번째 줄은 빈 줄이며, 일반적으로 더 자세한 설명을 제공합니다.
Docstring의 나머지 부분은 주로 함수 또는 클래스의 매개변수와 반환 값에 대한 설명을 포함합니다. 이 정보는 나중에 IDE나 help() 함수를 사용하여 코드 개체에 대한 도움말을 검색할 때 사용됩니다.
PyTorch는 이러한 docstring을 사용하여 각 함수와 클래스의 설명을 제공합니다. PyTorch의 공식 문서에서는 이러한 docstring을 사용하여 함수와 클래스에 대한 설명을 제공합니다. 이러한 문서는 다른 개발자들이 코드를 이해하고 사용할 수 있도록 도와줍니다.
__doc__
__doc__은 Python에서 모듈, 클래스, 함수 또는 메서드의 docstring을 가져오기 위한 특별한 속성(attribute)입니다. __doc__은 해당 개체의 docstring을 문자열로 나타냅니다.
예를 들어, 다음과 같이 함수를 정의하고 해당 함수의 docstring을 가져와볼 수 있습니다.
def my_function(arg1, arg2):
"""
This is a docstring for my_function.
"""
# Function code goes here.
print(my_function.__doc__)
위 코드는 my_function 함수의 docstring을 출력합니다. 결과는 다음과 같습니다.
This is a docstring for my_function.
__repr__
__repr__은 파이썬 클래스에서 정의할 수 있는 특수한 메소드 중 하나입니다. 이 메소드는 해당 객체를 문자열로 나타내기 위해 호출되며, repr 내장 함수로 호출할 때의 결과를 제공합니다. repr 함수는 개발자가 디버깅할 때 사용하는 것으로, 객체의 내용을 잘 나타내는 문자열 표현을 반환하는 것이 좋습니다.
일반적으로 __repr__은 객체의 클래스와 인스턴스 변수 값을 포함한 문자열을 반환합니다. 이 메소드를 정의하지 않으면 파이썬은 기본적으로 객체의 클래스와 메모리 주소를 나타내는 문자열을 반환합니다.
다음은 __repr__ 메소드의 예시입니다.
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"MyClass(x={self.x}, y={self.y})"
위의 예시에서, MyClass라는 클래스는 x와 y라는 인스턴스 변수를 가지며, __repr__ 메소드를 정의합니다. __repr__ 메소드는 MyClass 객체를 문자열로 나타내기 위해 f-string을 사용하여 인스턴스 변수의 값을 포함한 문자열을 반환합니다.
obj = MyClass(3, 4)
print(obj) # 출력: MyClass(x=3, y=4)
repr()
repr() 함수는 파이썬에서 객체를 문자열로 나타내기 위해 사용되는 내장 함수 중 하나입니다. repr() 함수는 해당 객체의 __repr__() 메소드를 호출하여 객체를 나타내는 문자열을 반환합니다.
repr() 함수는 개발자가 디버깅할 때 주로 사용합니다. print() 함수를 사용하여 객체를 출력하면 repr() 함수가 내부적으로 호출됩니다. 객체를 문자열로 표시하면서, 해당 객체의 내용을 쉽게 파악할 수 있도록 해주는 것이 repr() 함수의 목적입니다.
repr() 함수를 사용하여 앞서 예시에서 정의한 MyClass 객체를 출력해보면, MyClass(x=3, y=4)와 같이 __repr__() 메소드에서 정의한 문자열이 출력됩니다.
obj = MyClass(3, 4)
print(repr(obj)) # 출력: MyClass(x=3, y=4)
'AI > Pytorch' 카테고리의 다른 글
Dataset, Dataloader (0) | 2023.03.17 |
---|---|
nn.Module의 hook 과 apply (0) | 2023.03.17 |
Custom Model, Conatiner, Module (0) | 2023.03.16 |
PyTorch Document 2 (0) | 2023.03.16 |
PyTorch Document 1 (0) | 2023.03.14 |