torch.nn.Linear(in_features,out_features,bias = True, device = None,dtype = None)
in_features
- input sample의 size
out_features
- output sample의 size
bias = True
- bias에 대한 학습 여부
device = None
- cuda로 학습할 것인지 cpu로 학습할 것인지
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
class Net(nn.Module):
def __init__(self):
...
def forward(self, x):
...
net = Net()
net = net.to(device)
# GPU에 할당받은 변수를 다시 재할당해 inplace와 같은 옵션을 적용시키는 것이 예기치 못한 오류를 예방할 수 있다.
1. m = nn.Linear(20, 30)
2. input = torch.randn(128, 20)
3. output = m(input)
4. print(output.size())
5. torch.Size([128, 30])
m이라는 linear의 input_size는 20이고 output_size는 30
input은 128 * 20이고 x의 input 사이즈는 20
input을 m에 넣는다.
outpur의 size는 5번과 같이 128 * 30