๐Ÿ–ฅ๏ธ Programming/Pytorch

๐Ÿ–ฅ๏ธ Programming/Pytorch

[Pytorch] if __name__ == '__main__'

ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด `if __name__ == '__main__':` ์ด๋Ÿฐ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉํ•  ๋•Œ์™€ ์ง์ ‘ ์‹คํ–‰ํ•  ๋•Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ํŒจํ„ด์œผ๋กœ. ํ•ด๋‹น ๋ชจ๋“ˆ์ด ์ž„ํฌํŠธ๋œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ์ง์ ‘ ์‹คํ–‰๋œ ๊ฒฝ์šฐ์—๋งŒ if๋ฌธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ ์˜ˆ์‹œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. # my_module.py def my_function(): print("๋ชจ๋“ˆ ๋‚ด ํ•จ์ˆ˜ ์‹คํ–‰") if __name__ == '__main__': print("์ง์ ‘ ์‹คํ–‰๋จ") ์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ `another_module.py`์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด `my_function()`์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด "๋ชจ๋“ˆ ๋‚ด ํ•จ์ˆ˜ ์‹คํ–‰"์ด๋ผ๋Š” ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. # another_mo..

๐Ÿ–ฅ๏ธ Programming/Pytorch

[Pytorch] ๋ชจ๋ธ ํ•™์Šต ๋ฐ ์˜ˆ์ธก ์ฝ”๋“œ - torch.no_grad(), loss.backward(), optimizer.step(), optimizer_zero_grad()

def training(epoch, model, trainloader, validloader): correct = 0 total = 0 running_loss = 0 model.train() for b in trainloader: x, y = b.text, b.label x, y = x.to(device), y.to(device) # ๋ฐ˜๋“œ์‹œ ๋ชจ๋ธ๊ณผ ๊ฐ™์€ device y_pred = model(x) loss = loss_fn(y_pred, y) optimizer.zero_grad() loss.backward() optimizer.step() with torch.no_grad(): # ์ถ”๋ก  y_pred = torch.argmax(y_pred, dim=1) correct += (y_pred == y).sum(..

๐Ÿ–ฅ๏ธ Programming/Pytorch

[Pytorch] F.relu()์™€ nn.ReLU()์˜ ์ฐจ์ด์ 

nn.ReLU() ํŒŒ์ดํ† ์น˜์˜ ์‹ ๊ฒฝ๋ง ๋ชจ๋“ˆ ์ค‘ ํ•˜๋‚˜์ธ ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ๋ชจ๋“ˆ `nn.Sequential()` ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” `nn.Module`์„ ๋งŒ๋“ฌ ๋ชจ๋ธ์˜ `__init__` ๋ฉ”์„œ๋“œ์—์„œ ๋ ˆ์ด์–ด๋กœ ์ดˆ๊ธฐํ™”๋˜๋ฉฐ, ๊ทธ ๋ ˆ์ด์–ด๊ฐ€ `forward()` ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋  ๋•Œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๊ฐ€ ์ ์šฉ F.relu() ํŒŒ์ดํ† ์น˜์˜ ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ `torch.nn.functional`์˜ ํ•จ์ˆ˜ ํ•จ์ˆ˜๋กœ์„œ ์ฃผ๋กœ ๋ชจ๋ธ์˜ forward ์—ฐ์‚ฐ ๋‚ด์—์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ๋ชจ๋ธ์˜ forward ๋ฉ”์„œ๋“œ์—์„œ ํ•จ์ˆ˜๋กœ ์ง์ ‘ ํ˜ธ์ถœ https://discuss.pytorch.org/t/whats-the-difference-between-nn-relu-vs-f-relu/27599 https://asidefine.tistory.com/80

Junyeong Son
'๐Ÿ–ฅ๏ธ Programming/Pytorch' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก