찾다
기술 주변기기일체 포함Pytorch의 핵심 핵심인 CNN 복호화를 심층 분석!

안녕하세요 샤오좡입니다!

초보자는 CNN(컨볼루션 신경망) 생성에 익숙하지 않을 수 있습니다. 아래의 전체 사례를 통해 설명해 보겠습니다.

CNN은 이미지 분류, 타겟 감지, 이미지 생성 및 기타 작업에 널리 사용되는 딥 러닝 모델입니다. Convolutional Layer와 Pooling Layer를 통해 자동으로 이미지의 특징을 추출하고, Fully Connected Layer를 통해 분류를 수행합니다. 이 모델의 핵심은 컨볼루션 및 풀링 작업을 사용하여 이미지의 로컬 특징을 효과적으로 캡처하고 다층 네트워크를 통해 이를 결합하여 고급 특징 추출 및 이미지 분류를 달성하는 것입니다.

Principle

1. Convolutional Layer:

Convolutional 레이어는 Convolution 연산을 통해 입력 이미지에서 특징을 추출합니다. 이 작업에는 입력 이미지 위로 이동하고 슬라이딩 창 아래에서 내적을 계산하는 학습 가능한 컨볼루션 커널이 포함됩니다. 이 프로세스는 로컬 특징을 추출하는 데 도움이 되므로 번역 불변성에 대한 네트워크의 인식이 향상됩니다.

공식:

突破Pytorch核心点,CNN !!!

여기서 x는 입력, w는 컨볼루션 커널, b는 편향입니다.

2. 풀링 레이어:

풀링 레이어는 일반적으로 사용되는 차원 축소 기술로, 그 기능은 데이터의 공간 차원을 줄여 계산량을 줄이고 가장 중요한 특징을 추출하는 것입니다. 그 중 맥스 풀링(max pooling)은 각 윈도우에서 가장 큰 값을 대표로 선택하는 일반적인 풀링 방법이다. Max Pooling을 통해 중요한 정보를 유지하면서 데이터의 복잡성을 줄이고 모델의 계산 효율성을 향상시킬 수 있습니다.

공식(최대 풀링):

突破Pytorch核心点,CNN !!!

3. 완전 연결 레이어:

완전 연결 레이어는 신경망에서 중요한 역할을 하며 기능 맵은 출력 카테고리에 연결됩니다. . 완전 연결 계층의 각 뉴런은 이전 계층의 모든 뉴런과 연결되므로 특징 합성 및 분류가 가능합니다.

실용 단계 및 자세한 설명

1. 단계

  • 필요한 라이브러리와 모듈을 가져옵니다.
  • 네트워크 구조 정의: nn.Module을 사용하여 상속된 사용자 정의 신경망 클래스를 정의하고 컨볼루션 계층, 활성화 함수, 풀링 계층 및 완전 연결 계층을 정의합니다.
  • 손실 함수 및 최적화 프로그램을 정의합니다.
  • 데이터 로드 및 전처리.
  • 네트워크 훈련: 훈련 데이터를 사용하여 네트워크 매개변수를 반복적으로 훈련합니다.
  • 테스트 네트워크: 테스트 데이터를 사용하여 모델 성능을 평가합니다.

2. 코드 구현

import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transforms# 定义卷积神经网络类class SimpleCNN(nn.Module):def __init__(self):super(SimpleCNN, self).__init__()# 卷积层1self.conv1 = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3, stride=1, padding=1)self.relu = nn.ReLU()self.pool = nn.MaxPool2d(kernel_size=2, stride=2)# 卷积层2self.conv2 = nn.Conv2d(in_channels=16, out_channels=32, kernel_size=3, stride=1, padding=1)# 全连接层self.fc1 = nn.Linear(32 * 7 * 7, 10)# 输入大小根据数据调整def forward(self, x):x = self.conv1(x)x = self.relu(x)x = self.pool(x)x = self.conv2(x)x = self.relu(x)x = self.pool(x)x = x.view(-1, 32 * 7 * 7)x = self.fc1(x)return x# 定义损失函数和优化器net = SimpleCNN()criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(net.parameters(), lr=0.001)# 加载和预处理数据transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)# 训练网络num_epochs = 5for epoch in range(num_epochs):for i, (images, labels) in enumerate(train_loader):optimizer.zero_grad()outputs = net(images)loss = criterion(outputs, labels)loss.backward()optimizer.step()if (i+1) % 100 == 0:print(f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{len(train_loader)}], Loss: {loss.item()}')# 测试网络net.eval()with torch.no_grad():correct = 0total = 0for images, labels in test_loader:outputs = net(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()accuracy = correct / totalprint('Accuracy on the test set: {}%'.format(100 * accuracy))

이 예는 MNIST 데이터 세트를 사용하여 훈련 및 테스트된 간단한 CNN 모델을 보여줍니다.

다음으로 모델의 성능과 훈련 과정을 보다 직관적으로 이해하기 위해 시각화 단계를 추가합니다.

Visualization

1. matplotlib 가져오기

import matplotlib.pyplot as plt

2. 훈련 중 손실 및 정확도 기록:

훈련 루프 동안 각 에포크의 손실 및 정확도를 기록합니다.

# 在训练循环中添加以下代码train_loss_list = []accuracy_list = []for epoch in range(num_epochs):running_loss = 0.0correct = 0total = 0for i, (images, labels) in enumerate(train_loader):optimizer.zero_grad()outputs = net(images)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()if (i+1) % 100 == 0:print(f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{len(train_loader)}], Loss: {loss.item()}')epoch_loss = running_loss / len(train_loader)accuracy = correct / totaltrain_loss_list.append(epoch_loss)accuracy_list.append(accuracy)

3. 손실 및 정확도 시각화:

# 在训练循环后,添加以下代码plt.figure(figsize=(12, 4))# 可视化损失plt.subplot(1, 2, 1)plt.plot(range(1, num_epochs + 1), train_loss_list, label='Training Loss')plt.title('Training Loss')plt.xlabel('Epochs')plt.ylabel('Loss')plt.legend()# 可视化准确率plt.subplot(1, 2, 2)plt.plot(range(1, num_epochs + 1), accuracy_list, label='Accuracy')plt.title('Accuracy')plt.xlabel('Epochs')plt.ylabel('Accuracy')plt.legend()plt.tight_layout()plt.show()

이러한 방식으로 훈련 과정 후 훈련 손실 및 정확도의 변화를 확인할 수 있습니다.

코드를 가져온 후 필요에 따라 시각적 콘텐츠와 형식을 조정할 수 있습니다.

위 내용은 Pytorch의 핵심 핵심인 CNN 복호화를 심층 분석!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 51CTO.COM에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
AI 내부 배포의 숨겨진 위험 : 거버넌스 격차 및 치명적인 위험AI 내부 배포의 숨겨진 위험 : 거버넌스 격차 및 치명적인 위험Apr 28, 2025 am 11:12 AM

Apollo Research의 새로운 보고서에 따르면 고급 AI 시스템의 점검되지 않은 내부 배치는 상당한 위험을 초래합니다. 주요 AI 기업들 사이에서 널리 퍼져있는 이러한 감독 부족은 uncont에서 범위에 이르는 잠재적 인 치명적인 결과를 허용합니다.

AI Polygraph 구축AI Polygraph 구축Apr 28, 2025 am 11:11 AM

전통적인 거짓말 탐지기는 구식입니다. 손목 대역으로 연결된 포인터에 의존하는 것은 대상의 활력 징후와 물리적 반응을 인쇄하는 거짓말 탐지기가 거짓말을 식별하는 데 정확하지 않습니다. 그렇기 때문에 거짓말 탐지 결과는 일반적으로 법원에서 채택되지는 않지만 많은 무고한 사람들이 감옥에 갇히게되었습니다. 대조적으로, 인공 지능은 강력한 데이터 엔진이며, 작동 원리는 모든 측면을 관찰하는 것입니다. 이것은 과학자들이 다양한 방식으로 진실을 찾는 응용 분야에 인공 지능을 적용 할 수 있음을 의미합니다. 한 가지 방법은 거짓말 탐지기처럼 심문을받는 사람의 중요한 부호 반응을 분석하지만보다 상세하고 정확한 비교 분석을 분석하는 것입니다. 또 다른 방법은 언어 마크 업을 사용하여 사람들이 실제로 말하는 것을 분석하고 논리와 추론을 사용하는 것입니다. 말이 갈 때, 한 거짓말은 또 다른 거짓말을 번식시키고 결국

항공 우주 산업에서 AI가 이륙을 위해 청산 되었습니까?항공 우주 산업에서 AI가 이륙을 위해 청산 되었습니까?Apr 28, 2025 am 11:10 AM

혁신의 선구자 인 항공 우주 산업은 AI를 활용하여 가장 복잡한 도전을 해결하고 있습니다. Modern Aviation의 복잡성 증가는 AI의 자동화 및 실시간 인텔리전스 기능이 필요합니다.

베이징의 봄 로봇 레이스를보고 있습니다베이징의 봄 로봇 레이스를보고 있습니다Apr 28, 2025 am 11:09 AM

로봇 공학의 빠른 발전은 우리에게 매혹적인 사례 연구를 가져 왔습니다. Noetix의 N2 로봇의 무게는 40 파운드가 넘고 키가 3 피트이며 백 플립을 할 수 있다고합니다. Unitree의 G1 로봇의 무게는 N2 크기의 약 2 배이며 키는 약 4 피트입니다. 경쟁에 참여하는 작은 휴머노이드 로봇도 많으며 팬이 앞으로 나아가는 로봇도 있습니다. 데이터 해석 하프 마라톤은 12,000 명 이상의 관중을 끌어 들였지만 21 명의 휴머노이드 로봇 만 참여했습니다. 정부는 참여 로봇이 경쟁 전에 "집중 훈련"을 수행했다고 지적했지만 모든 로봇이 전체 경쟁을 완료 한 것은 아닙니다. 챔피언 -Tiangong Ult Beijing Humanoid Robot Innovation Center가 개발했습니다.

거울 함정 : AI 윤리와 인간 상상력의 붕괴거울 함정 : AI 윤리와 인간 상상력의 붕괴Apr 28, 2025 am 11:08 AM

인공 지능은 현재 형태로 진정으로 지능적이지 않습니다. 기존 데이터를 모방하고 정제하는 데 능숙합니다. 우리는 인공 지능을 만들지 않고 오히려 인공적인 추론을 만들고 있습니다.

새로운 Google Leak은 Handy Google 사진 기능 업데이트가 공개됩니다새로운 Google Leak은 Handy Google 사진 기능 업데이트가 공개됩니다Apr 28, 2025 am 11:07 AM

보고서에 따르면 Google Photos Android 버전 7.26 코드에 업데이트 된 인터페이스가 숨겨져 있으며 사진을 볼 때마다 새로 감지 된 얼굴 썸네일 행이 화면 하단에 표시됩니다. 새로운 얼굴 썸네일에는 이름 태그가 없으므로 탐지 된 각 사람에 대한 자세한 정보를 보려면 개별적으로 클릭해야한다고 생각합니다. 현재이 기능은 Google 사진이 이미지에서 찾은 사람들 외에는 정보를 제공하지 않습니다. 이 기능은 아직 사용할 수 없으므로 Google이 어떻게 정확하게 사용할 것인지 모릅니다. Google은 썸네일을 사용하여 선택된 사람들의 더 많은 사진을 찾는 속도를 높이거나 편집 할 개인을 선택하는 것과 같은 다른 목적으로 사용될 수 있습니다. 기다렸다가 보자. 지금은

강화 조정 안내서 - 분석 Vidhya강화 조정 안내서 - 분석 VidhyaApr 28, 2025 am 09:30 AM

강화 결합은 인간의 피드백을 기반으로 조정하도록 모델을 가르치면서 AI 개발을 흔들었다. 감독 학습 기초가 보상 기반 업데이트와 혼합되어 더 안전하고 정확하며 진정으로 도움을줍니다.

Let 's Dance : 인간 신경 그물을 미세 조정하기위한 구조화 된 움직임Let 's Dance : 인간 신경 그물을 미세 조정하기위한 구조화 된 움직임Apr 27, 2025 am 11:09 AM

과학자들은 C. el 그러나 중요한 질문이 발생합니다. 새로운 AI S와 함께 효과적으로 작동하도록 우리 자신의 신경망을 어떻게 조정합니까?

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기