Jadual Kandungan
Prinsip
1. Lapisan Konvolusi:
2. Lapisan Pengumpulan:
3 Lapisan Bersambung Sepenuhnya:
Langkah praktikal dan penerangan terperinci
1. Langkah
2. Pelaksanaan kod
Visualisasi
1. Import matplotlib
2 Rekod kehilangan dan ketepatan semasa latihan:
3 Visualisasikan kehilangan dan ketepatan:
Rumah Peranti teknologi AI Analisis mendalam tentang titik teras Pytorch, penyahsulitan CNN!

Analisis mendalam tentang titik teras Pytorch, penyahsulitan CNN!

Jan 04, 2024 pm 07:18 PM
cnn pytorch

Helo, saya Xiaozhuang!

Pemula mungkin tidak biasa membuat rangkaian saraf konvolusi (CNN). Mari kita ilustrasikan dengan kes lengkap di bawah.

CNN ialah model pembelajaran mendalam yang digunakan secara meluas dalam pengelasan imej, pengesanan sasaran, penjanaan imej dan tugasan lain. Ia secara automatik mengekstrak ciri imej melalui lapisan konvolusi dan lapisan pengumpulan, dan melakukan pengelasan melalui lapisan bersambung sepenuhnya. Kunci kepada model ini ialah menggunakan operasi lilitan dan pengumpulan untuk menangkap ciri tempatan secara berkesan dalam imej dan menggabungkannya melalui rangkaian berbilang lapisan untuk mencapai pengekstrakan ciri lanjutan dan pengelasan imej.

Prinsip

1. Lapisan Konvolusi:

Lapisan konvolusi mengekstrak ciri daripada imej input melalui operasi konvolusi. Operasi ini melibatkan kernel lilitan yang boleh dipelajari yang meluncur ke atas imej input dan mengira produk titik di bawah tetingkap gelongsor. Proses ini membantu mengekstrak ciri tempatan, dengan itu meningkatkan persepsi rangkaian terhadap invarian terjemahan.

Formula:

突破Pytorch核心点,CNN !!!

di mana, x ialah input, w ialah isirong lilitan, dan b ialah bias.

2. Lapisan Pengumpulan:

Lapisan penyatuan ialah teknologi pengurangan dimensi yang biasa digunakan adalah untuk mengurangkan dimensi spatial data, dengan itu mengurangkan jumlah pengiraan dan mengekstrak ciri yang paling ketara. Antaranya, pengumpulan maks ialah kaedah pengumpulan biasa, yang memilih nilai terbesar dalam setiap tetingkap sebagai wakil. Melalui pengumpulan maksimum, kami boleh mengurangkan kerumitan data dan meningkatkan kecekapan pengiraan model sambil mengekalkan maklumat penting.

Formula (penghimpunan maksimum):

突破Pytorch核心点,CNN !!!

3 Lapisan Bersambung Sepenuhnya:

Lapisan yang bersambung sepenuhnya memainkan peranan penting dalam rangkaian saraf Ia mengekstrak lapisan konvolusi dan penyatuan disambungkan kepada lapisan keluaran . Setiap neuron dalam lapisan bersambung sepenuhnya disambungkan kepada semua neuron dalam lapisan sebelumnya, supaya sintesis dan pengelasan ciri boleh dicapai.

Langkah praktikal dan penerangan terperinci

1. Langkah

  • Import perpustakaan dan modul yang diperlukan.
  • Tentukan struktur rangkaian: Gunakan nn.Module untuk menentukan kelas rangkaian saraf tersuai yang diwarisi daripadanya, dan tentukan lapisan lilitan, fungsi pengaktifan, lapisan pengumpulan dan lapisan bersambung sepenuhnya.
  • Tentukan fungsi kehilangan dan pengoptimum.
  • Muat dan praproses data.
  • Latih rangkaian: Latih parameter rangkaian secara berulang menggunakan data latihan.
  • Rangkaian ujian: Gunakan data ujian untuk menilai prestasi model.

2. Pelaksanaan kod

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))
Salin selepas log masuk

Contoh ini menunjukkan model CNN yang mudah, dilatih dan diuji menggunakan set data MNIST.

Seterusnya, kami menambah langkah visualisasi untuk memahami prestasi dan proses latihan model dengan lebih intuitif.

Visualisasi

1. Import matplotlib

import matplotlib.pyplot as plt
Salin selepas log masuk

2 Rekod kehilangan dan ketepatan semasa latihan:

Semasa gelung latihan, rekodkan kehilangan dan ketepatan setiap zaman.

# 在训练循环中添加以下代码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)
Salin selepas log masuk

3 Visualisasikan kehilangan dan ketepatan:

# 在训练循环后,添加以下代码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()
Salin selepas log masuk

Dengan cara ini, kita dapat melihat perubahan kehilangan dan ketepatan latihan selepas proses latihan.

Selepas mengimport kod, anda boleh melaraskan kandungan dan format visual mengikut keperluan.

Atas ialah kandungan terperinci Analisis mendalam tentang titik teras Pytorch, penyahsulitan CNN!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

iFlytek: Huawei Ascend 910B pada asasnya setanding dengan NVIDIA A100 dalam keupayaan, dan mereka bekerjasama untuk mencipta pangkalan baharu untuk kecerdasan buatan umum negara saya iFlytek: Huawei Ascend 910B pada asasnya setanding dengan NVIDIA A100 dalam keupayaan, dan mereka bekerjasama untuk mencipta pangkalan baharu untuk kecerdasan buatan umum negara saya Oct 22, 2023 pm 06:13 PM

Laman web ini melaporkan pada 22 Oktober bahawa pada suku ketiga tahun ini, iFlytek mencapai keuntungan bersih sebanyak 25.79 juta yuan, penurunan tahun ke tahun sebanyak 81.86% dalam tiga suku pertama ialah 99.36 juta yuan, a penurunan tahun ke tahun sebanyak 76.36%. Jiang Tao, naib presiden iFlytek, mendedahkan pada taklimat prestasi Q3 bahawa iFlytek telah melancarkan projek penyelidikan khas dengan Huawei Shengteng pada awal 2023, dan bersama-sama membangunkan perpustakaan pengendali berprestasi tinggi dengan Huawei untuk bersama-sama mewujudkan pangkalan baharu bagi buatan am China. kecerdasan untuk membenarkan model skala besar domestik Seni bina adalah berdasarkan perisian dan perkakasan inovatif secara bebas. Beliau menegaskan bahawa keupayaan semasa Huawei Ascend 910B pada asasnya setanding dengan Nvidia A100. Pada Festival Pembangun Global iFlytek 1024 yang akan datang, iFlytek dan Huawei akan membuat pengumuman bersama selanjutnya mengenai pangkalan kuasa pengkomputeran kecerdasan buatan. Beliau juga menyebut,

Gabungan sempurna PyCharm dan PyTorch: langkah pemasangan dan konfigurasi terperinci Gabungan sempurna PyCharm dan PyTorch: langkah pemasangan dan konfigurasi terperinci Feb 21, 2024 pm 12:00 PM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) yang berkuasa dan PyTorch ialah rangka kerja sumber terbuka yang popular dalam bidang pembelajaran mendalam. Dalam bidang pembelajaran mesin dan pembelajaran mendalam, menggunakan PyCharm dan PyTorch untuk pembangunan boleh meningkatkan kecekapan pembangunan dan kualiti kod. Artikel ini akan memperkenalkan secara terperinci cara memasang dan mengkonfigurasi PyTorch dalam PyCharm, dan melampirkan contoh kod khusus untuk membantu pembaca menggunakan fungsi berkuasa kedua-dua ini dengan lebih baik. Langkah 1: Pasang PyCharm dan Python

Pengenalan kepada lima kaedah pensampelan dalam tugas penjanaan bahasa semula jadi dan pelaksanaan kod Pytorch Pengenalan kepada lima kaedah pensampelan dalam tugas penjanaan bahasa semula jadi dan pelaksanaan kod Pytorch Feb 20, 2024 am 08:50 AM

Dalam tugas penjanaan bahasa semula jadi, kaedah pensampelan ialah teknik untuk mendapatkan output teks daripada model generatif. Artikel ini akan membincangkan 5 kaedah biasa dan melaksanakannya menggunakan PyTorch. 1. GreedyDecoding Dalam penyahkodan tamak, model generatif meramalkan perkataan urutan keluaran berdasarkan urutan input masa langkah demi masa. Pada setiap langkah masa, model mengira taburan kebarangkalian bersyarat bagi setiap perkataan, dan kemudian memilih perkataan dengan kebarangkalian bersyarat tertinggi sebagai output langkah masa semasa. Perkataan ini menjadi input kepada langkah masa seterusnya, dan proses penjanaan diteruskan sehingga beberapa syarat penamatan dipenuhi, seperti urutan panjang tertentu atau penanda akhir khas. Ciri GreedyDecoding ialah setiap kali kebarangkalian bersyarat semasa adalah yang terbaik

Melaksanakan model resapan penyingkiran hingar menggunakan PyTorch Melaksanakan model resapan penyingkiran hingar menggunakan PyTorch Jan 14, 2024 pm 10:33 PM

Sebelum kita memahami prinsip kerja Model Kebarangkalian Penyebaran Denoising (DDPM) secara terperinci, mari kita fahami dahulu beberapa perkembangan kecerdasan buatan generatif, yang juga merupakan salah satu penyelidikan asas DDPM. VAEVAE menggunakan pengekod, ruang terpendam kemungkinan dan penyahkod. Semasa latihan, pengekod meramalkan min dan varians setiap imej dan sampel nilai ini daripada taburan Gaussian. Hasil pensampelan dihantar ke penyahkod, yang menukar imej input ke dalam bentuk yang serupa dengan imej output. KL divergence digunakan untuk mengira kerugian. Kelebihan ketara VAE ialah keupayaannya untuk menghasilkan imej yang pelbagai. Dalam peringkat persampelan, seseorang boleh membuat sampel terus daripada taburan Gaussian dan menjana imej baharu melalui penyahkod. GAN telah mencapai kemajuan besar dalam pengekod auto variasi (VAE) dalam masa satu tahun sahaja.

Tutorial memasang PyCharm dengan PyTorch Tutorial memasang PyCharm dengan PyTorch Feb 24, 2024 am 10:09 AM

Sebagai rangka kerja pembelajaran mendalam yang berkuasa, PyTorch digunakan secara meluas dalam pelbagai projek pembelajaran mesin. Sebagai persekitaran pembangunan bersepadu Python yang berkuasa, PyCharm juga boleh memberikan sokongan yang baik apabila melaksanakan tugas pembelajaran mendalam. Artikel ini akan memperkenalkan secara terperinci cara memasang PyTorch dalam PyCharm dan menyediakan contoh kod khusus untuk membantu pembaca mula menggunakan PyTorch dengan cepat untuk tugasan pembelajaran mendalam. Langkah 1: Pasang PyCharm Mula-mula, kita perlu pastikan kita ada

Pembelajaran Mendalam dengan PHP dan PyTorch Pembelajaran Mendalam dengan PHP dan PyTorch Jun 19, 2023 pm 02:43 PM

Pembelajaran mendalam merupakan satu cabang penting dalam bidang kecerdasan buatan dan semakin mendapat perhatian dan perhatian sejak beberapa tahun kebelakangan ini. Untuk dapat menjalankan penyelidikan dan aplikasi pembelajaran mendalam, selalunya perlu menggunakan beberapa rangka kerja pembelajaran mendalam untuk membantu melaksanakannya. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan PyTorch untuk pembelajaran mendalam. 1. Apakah PyTorch? PyTorch ialah rangka kerja pembelajaran mesin sumber terbuka yang dibangunkan oleh Facebook Ia boleh membantu kami mencipta dan melatih model pembelajaran mendalam. PyTorc

sangat laju! Kenali pertuturan video menjadi teks dalam beberapa minit sahaja dengan kurang daripada 10 baris kod sangat laju! Kenali pertuturan video menjadi teks dalam beberapa minit sahaja dengan kurang daripada 10 baris kod Feb 27, 2024 pm 01:55 PM

Hello semua, saya Kite Dua tahun lalu, keperluan untuk menukar fail audio dan video kepada kandungan teks adalah sukar dicapai, tetapi kini ia boleh diselesaikan dengan mudah dalam beberapa minit sahaja. Dikatakan bahawa untuk mendapatkan data latihan, beberapa syarikat telah merangkak sepenuhnya video pada platform video pendek seperti Douyin dan Kuaishou, dan kemudian mengekstrak audio daripada video dan menukarnya ke dalam bentuk teks untuk digunakan sebagai korpus latihan untuk data besar. model. Jika anda perlu menukar fail video atau audio kepada teks, anda boleh mencuba penyelesaian sumber terbuka yang tersedia hari ini. Sebagai contoh, anda boleh mencari titik masa tertentu apabila dialog dalam filem dan rancangan televisyen muncul. Tanpa berlengah lagi, mari kita ke intinya. Whisper ialah Whisper sumber terbuka OpenAI Sudah tentu ia ditulis dalam Python Ia hanya memerlukan beberapa pakej pemasangan yang mudah.

Penjelasan terperinci tentang GQA, mekanisme perhatian yang biasa digunakan dalam model besar, dan pelaksanaan kod Pytorch Penjelasan terperinci tentang GQA, mekanisme perhatian yang biasa digunakan dalam model besar, dan pelaksanaan kod Pytorch Apr 03, 2024 pm 05:40 PM

Perhatian Pertanyaan Berkumpulan (GroupedQueryAttention) ialah kaedah perhatian berbilang pertanyaan dalam model bahasa besar Matlamatnya adalah untuk mencapai kualiti MHA sambil mengekalkan kelajuan MQA. GroupedQueryAttention kumpulan pertanyaan, dan pertanyaan dalam setiap kumpulan berkongsi berat perhatian yang sama, yang membantu mengurangkan kerumitan pengiraan dan meningkatkan kelajuan inferens. Dalam artikel ini, kami akan menerangkan idea GQA dan cara menterjemahkannya ke dalam kod. GQA ada dalam kertas GQA:TrainingGeneralizedMulti-QueryTransformerModelsfromMulti-HeadCheckpoint

See all articles