PyTorch 도체 응용 강좌

2554 단어 PyTorch도수
머리말
기계 학습 의 기본 사상 은 바로 하나의 함 수 를 찾 아 견본 데이터 분 포 를 하 는 것 이기 때문에 구 하 는 것 과 관련 되 었 다 .초 평면 에서 우 리 는 전체적인 최 우수 치 를 직접 얻 기 어렵 고 유 니 버 설 성 이 없 기 때문에 우 리 는 경사 가 마이너스 방향 을 따라 떨 어 지면 우 리 는 국부 적 또는 전체적인 최 우수 치 를 얻 을 수 있다.그래서 도 수 는 기계 학습 에서 매우 중요 하 다.

기본 사용tensor.backward()경사도 를 자동 으로 누적tensor.grad할 수 있다.

x = torch.ones(3,3)
print(x.requires_grad)
x.requires_grad_(True)
print(x.requires_grad)
y = x**2/(x-2)
out = y.mean()
print(x.grad)
out.backward()
print(x.grad)
False
True
None
tensor([[-0.3333, -0.3333, -0.3333],
        [-0.3333, -0.3333, -0.3333],
        [-0.3333, -0.3333, -0.3333]])requires_grad가이드 가능 여부tensor안내 가능 여부 설정 가능requires_grad_()tensor현재grad도 수 를 보기
위의 공식 은 매우 간단 하고 절차 적 의미 가 있다.
1/4 * (x**2) / (x-2)
x 의 도 수 를 구하 고 기본 공식 은 아래 에 있다.

주의 점
우리 가 사용tensor한 후에 얻 은 것 은.mean이 고,그렇지 않 으 면 잘못 보고 할 것 이다.

x = torch.ones(3, requires_grad=True)
y = x * 2
y = y * 2
print(y)

tensor([4., 4., 4.], grad_fn=<MulBackward0>)

y.backward()
print(x.grad)
잘못 을 보고 하 다
RuntimeError: grad can be implicitly created only for scalar outputs

v = torch.tensor([0.1, 1.0, 0.0001], dtype=torch.float)
y.backward()
print(x.grad)

tensor([4.0000e-01, 4.0000e+00, 4.0000e-04])
역할 영역
어떤 부분 을 원 하 시 면 저희 가 이 걸 사용 할 수 있 습 니 다.

x = torch.ones(3, requires_grad=True)
y = x * 2
print(y.requires_grad)
with torch.no_grad():
 y = y * 2 
 print(y.requires_grad)
True
False
총결산
이 장 에서 우 리 는 pytorch 안의no_grad()를 사용 하여 함수 의 구 도 를 자동 으로 실현 하여 우리 가 뒤에서 많은 초대형 인삼 수량의 함수 에 직면 할 때 구 도 는 여 유 롭 게 변 하도록 도와 준다.
전절
PyTorch 사용 튜 토리 얼-설치 및 기본 사용
PyTorch 가이드 애플 리 케 이 션 의 사용 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 PyTorch 가이드 애플 리 케 이 션 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기