> 기술 주변기기 > 일체 포함 > Tensor의 혁신으로 가는 길, Pytorch의 핵심에 대한 심층적인 이해!

Tensor의 혁신으로 가는 길, Pytorch의 핵심에 대한 심층적인 이해!

王林
풀어 주다: 2024-01-09 20:50:24
앞으로
967명이 탐색했습니다.

오늘은 Pytorch의 텐서 내용을 기록해 보겠습니다.

동시에 여러분께도 도움이 되었으면 좋겠습니다!

오늘 공유한 콘텐츠는 확실히 매우 실용적인 예시이기 때문이죠.

먼저 간략한 소개를 하겠습니다. PyTorch에서 텐서는 NumPy의 배열과 유사한 다차원 배열입니다. 텐서는 데이터를 저장하는 컨테이너일 뿐만 아니라 다양한 수학적 연산과 딥러닝 연산의 기초이기도 합니다.

다음은 세 가지 측면에서 요약한 것입니다.

  • 텐서의 개념
  • 텐서의 원리
  • 텐서의 작동

突破Pytorch核心,Tensor !!그림

텐서의 개념

1. 텐서

텐서는 스칼라(0차원 배열), 벡터(1차원 배열), 행렬(2차원 배열) 또는 더 높은 차원의 배열일 수 있는 다차원 배열입니다.

PyTorch에서 텐서는 torch.Tensor의 인스턴스이며 Python 목록, NumPy 배열 또는 특정 함수를 통해 직접 생성하는 등 다양한 방법으로 생성될 수 있습니다.

import torch# 创建一个标量scalar_tensor = torch.tensor(3.14)# 创建一个向量vector_tensor = torch.tensor([1, 2, 3])# 创建一个矩阵matrix_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])# 创建一个3D张量tensor_3d = torch.rand((2, 3, 4))# 2行3列4深度
로그인 후 복사

2. 텐서의 속성

각 텐서에는 모양(shape), 데이터 유형(dtype) 및 장치(device)를 포함한 몇 가지 중요한 속성이 있습니다.

# 获取张量的形状shape = tensor_3d.shape# 获取张量的数据类型dtype = tensor_3d.dtype# 获取张量所在的设备device = tensor_3d.device
로그인 후 복사

3. 텐서의 모양

텐서의 모양은 차원과 각 차원의 크기를 정의합니다. 예를 들어 (2, 3, 4) 모양의 텐서는 행 2개, 열 3개, 깊이 4개를 갖습니다. 모양은 텐서를 이해하고 조작하는 데 매우 중요합니다.

# 获取张量的形状shape = tensor_3d.shape# 改变张量的形状reshaped_tensor = tensor_3d.view(3, 8)# 将原始形状(2, 3, 4)变为(3, 8)
로그인 후 복사

텐서의 원리

PyTorch의 텐서는 기본 저장소의 추상화를 제공하는 텐서 클래스를 기반으로 구현됩니다.

Tensors에는 세 가지 주요 구성 요소가 포함됩니다.

  • Storage
  • Shape
  • Stride

1. Storage

(Storage) Storage는 데이터가 실제로 저장되는 곳으로, 연속된 메모리 영역입니다. 여러 텐서가 동일한 스토리지를 공유하여 메모리 소비를 줄일 수 있습니다. 저장되는 데이터는 텐서의 모양에 따라 배열됩니다.

# 获取张量的存储storage = tensor_3d.storage()
로그인 후 복사

2. 모양

텐서의 모양은 차원과 각 차원의 크기를 정의합니다. 형태 정보는 스토리지에서 데이터가 구성되는 방식을 설명하는 데 도움이 됩니다.

# 获取张量的形状shape = tensor_3d.shape
로그인 후 복사

3. Stride

Stride는 저장소의 다음 요소로 이동하는 데 필요한 단계 수를 나타냅니다. 스트라이드를 이해하면 텐서 내에서 인덱싱 및 슬라이싱 시 성능을 이해하는 데 도움이 됩니다.

# 获取张量的步幅stride = tensor_3d.stride()
로그인 후 복사

Tensor 연산

PyTorch는 수학 연산, 논리 연산, 인덱싱, 슬라이싱 등을 포함한 다양한 텐서 연산을 제공합니다.

가장 일반적인 중앙 집중식 작업은 다음과 같습니다.

1. 수학 작업

# 加法result_add = tensor_3d + 2# 乘法result_mul = tensor_3d * 3# 矩阵乘法matrix_a = torch.rand((2, 3))matrix_b = torch.rand((3, 4))result_matmul = torch.mm(matrix_a, matrix_b)
로그인 후 복사

2. 논리 작업

# 大小比较result_compare = tensor_3d > 0.5# 逻辑运算result_logical = torch.logical_and(result_add, result_compare)
로그인 후 복사

3. 모양 작업

# 索引element = tensor_3d[0, 1, 2]# 切片sliced_tensor = tensor_3d[:, 1:3, :]
로그인 후 복사

5. 다양한 모양의 텐서에 대해 요소별 수학 연산을 수행할 수 있도록 텐서를 자동으로 확장하는 연산입니다.

# 改变形状reshaped_tensor = tensor_3d.view(3, 8)# 转置transposed_tensor = tensor_3d.transpose(0, 2)
로그인 후 복사

드디어

오늘은 PyTorch의 텐서 기본 개념, 원리, 일반적인 동작을 소개합니다.

Tensor는 딥러닝의 기본 데이터 구조로서 신경망을 이해하고 구현하는 데 매우 중요합니다.

위 내용은 Tensor의 혁신으로 가는 길, Pytorch의 핵심에 대한 심층적인 이해!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿