pip install colab-ssh
from colab_ssh import launch_ssh
launsh_ssh(TOKEN, PASSWORD)
for epoch in epochs:
x, y = next(iter(dataloader))
이런식으로 사용 시 dataloader에 엄청난 병목이 생긴다.
왜냐하면 iter(dataloader)가 호출 될 때마다 새로운 dataloder객체를 정의하게 되는 방식으로 작동하게 되기 때문이다.
올바른 사용법은 다음과 같다.
data_iterator = iter(dataloader)
for epoch in epochs:
x, y = next(data_iterator)
모델의 input 크기를 설정하면 모델의 크기과 intermediate tensor, output tensor의 크기를 확인 할 수 있음.
보통 Hyperparameter optimization이라고도 하는듯.
Ray Tune이라는 라이브러리를 많이 사용한다고 한다.
아래 코드를 보니 되게 신기한 것을 배웠다.
total_loss += iter_loss를 하게되면 total_loss에 computation graph with one AddBackward function node가 계속 추가된다고 한다.
total_loss = 0
for x in range(10):
# assume loss is computed
iter_loss = torch.randn(3,4).mean()
iter_loss.requires_grad = True # losses are supposed to differentiable
total_loss += iter_loss # use total_loss += iter_loss.item() instead