Rumah Peranti teknologi AI Bagaimana untuk mencipta rangkaian saraf mudah menggunakan PyTorch

Bagaimana untuk mencipta rangkaian saraf mudah menggunakan PyTorch

Jan 25, 2024 am 09:27 AM
rangkaian saraf tiruan

Bagaimana untuk mencipta rangkaian saraf mudah menggunakan PyTorch

PyTorch ialah rangka kerja pembelajaran mendalam berasaskan Python untuk membina pelbagai rangkaian saraf. Artikel ini akan menunjukkan cara menggunakan PyTorch untuk membina rangkaian saraf mudah dan memberikan contoh kod.

Mula-mula, kita perlu memasang PyTorch. Ia boleh dipasang dari baris arahan dengan:

pip install torch
Salin selepas log masuk

Seterusnya, kami akan menggunakan PyTorch untuk membina rangkaian neural yang mudah disambungkan sepenuhnya untuk tugas klasifikasi binari. Rangkaian saraf ini akan mempunyai dua lapisan tersembunyi dengan 10 neuron setiap satu. Kami akan menggunakan fungsi pengaktifan sigmoid dan fungsi kehilangan entropi silang.

Berikut ialah kod lengkap:

import torch
import torch.nn as nn
import torch.optim as optim

# 定义神经网络模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(2, 10)  # 第一个隐藏层
        self.fc2 = nn.Linear(10, 10)  # 第二个隐藏层
        self.fc3 = nn.Linear(10, 1)  # 输出层

    def forward(self, x):
        x = torch.sigmoid(self.fc1(x))
        x = torch.sigmoid(self.fc2(x))
        x = torch.sigmoid(self.fc3(x))
        return x

# 创建数据集
X = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=torch.float32)
y = torch.tensor([[0], [1], [1], [0]], dtype=torch.float32)

# 创建神经网络实例
net = Net()

# 定义损失函数和优化器
criterion = nn.BCELoss()
optimizer = optim.SGD(net.parameters(), lr=0.1)

# 训练神经网络
for epoch in range(10000):
    optimizer.zero_grad()
    output = net(X)
    loss = criterion(output, y)
    loss.backward()
    optimizer.step()

    # 打印训练损失
    if epoch % 1000 == 0:
    print('Epoch {}: loss = {}'.format(epoch, loss.item()))

# 使用训练好的神经网络进行预测
with torch.no_grad():
    output = net(X)
    predicted = (output > 0.5).float()
    print('Predicted: {}\n'.format(predicted))
Salin selepas log masuk

Mula-mula, kami mentakrifkan kelas yang dipanggil Net, yang mewarisi daripada nn.Module. Kelas ini mengandungi semua lapisan rangkaian saraf. Dalam contoh ini, kami mentakrifkan tiga lapisan bersambung sepenuhnya, dua lapisan pertama adalah lapisan tersembunyi dan yang terakhir ialah lapisan keluaran.

Dalam kelas Net, selain mentakrifkan kaedah ke hadapan untuk menerangkan proses perambatan ke hadapan rangkaian saraf, kami juga menggunakan fungsi pengaktifan sigmoid untuk menghantar output setiap lapisan tersembunyi ke lapisan seterusnya.

Seterusnya, kami mencipta set data yang mengandungi empat sampel, di mana setiap sampel mempunyai dua ciri. Kami juga menentukan contoh rangkaian saraf bernama net dan memilih BCELoss sebagai fungsi kehilangan dan SGD sebagai pengoptimum.

Kemudian, kami mula melatih rangkaian saraf. Dalam setiap lelaran, kita mula-mula memusnahkan kecerunan pengoptimum dan kemudian menghantar set data X ke dalam rangkaian saraf untuk mendapatkan output. Kami mengira kerugian dan melakukan perambatan balik, dan akhirnya mengemas kini parameter rangkaian menggunakan pengoptimum. Kami juga mencetak kehilangan latihan untuk setiap 1000 lelaran.

Selepas latihan selesai, kami menggunakan pengurus konteks no_grad untuk membuat ramalan pada set data. Kami akan mengeluarkan empat ramalan dan mencetaknya.

Ini ialah contoh mudah yang menunjukkan cara membina rangkaian saraf asas menggunakan PyTorch. PyTorch menyediakan banyak alat dan fungsi untuk membantu kami membina dan melatih rangkaian saraf dengan lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk mencipta rangkaian saraf mudah menggunakan PyTorch. 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)

Terokai konsep, perbezaan, kebaikan dan keburukan RNN, LSTM dan GRU Terokai konsep, perbezaan, kebaikan dan keburukan RNN, LSTM dan GRU Jan 22, 2024 pm 07:51 PM

Dalam data siri masa, terdapat kebergantungan antara pemerhatian, jadi ia tidak bebas antara satu sama lain. Walau bagaimanapun, rangkaian saraf tradisional menganggap setiap pemerhatian sebagai bebas, yang mengehadkan keupayaan model untuk memodelkan data siri masa. Untuk menyelesaikan masalah ini, Rangkaian Neural Berulang (RNN) telah diperkenalkan, yang memperkenalkan konsep ingatan untuk menangkap ciri dinamik data siri masa dengan mewujudkan kebergantungan antara titik data dalam rangkaian. Melalui sambungan berulang, RNN boleh menghantar maklumat sebelumnya ke dalam pemerhatian semasa untuk meramalkan nilai masa hadapan dengan lebih baik. Ini menjadikan RNN alat yang berkuasa untuk tugasan yang melibatkan data siri masa. Tetapi bagaimanakah RNN mencapai ingatan seperti ini? RNN merealisasikan ingatan melalui gelung maklum balas dalam rangkaian saraf Ini adalah perbezaan antara RNN dan rangkaian saraf tradisional.

Kajian kes menggunakan model LSTM dwiarah untuk pengelasan teks Kajian kes menggunakan model LSTM dwiarah untuk pengelasan teks Jan 24, 2024 am 10:36 AM

Model LSTM dwiarah ialah rangkaian saraf yang digunakan untuk pengelasan teks. Berikut ialah contoh mudah yang menunjukkan cara menggunakan LSTM dwiarah untuk tugasan pengelasan teks. Pertama, kita perlu mengimport perpustakaan dan modul yang diperlukan: importosimportnumpyasnpfromkeras.preprocessing.textimportTokenizerfromkeras.preprocessing.sequenceimportpad_sequencesfromkeras.modelsimportSequentialfromkeras.layersimportDense,Em

Mengira operan titik terapung (FLOPS) untuk rangkaian saraf Mengira operan titik terapung (FLOPS) untuk rangkaian saraf Jan 22, 2024 pm 07:21 PM

FLOPS ialah salah satu piawaian untuk penilaian prestasi komputer, digunakan untuk mengukur bilangan operasi titik terapung sesaat. Dalam rangkaian saraf, FLOPS sering digunakan untuk menilai kerumitan pengiraan model dan penggunaan sumber pengkomputeran. Ia adalah penunjuk penting yang digunakan untuk mengukur kuasa pengkomputeran dan kecekapan komputer. Rangkaian saraf ialah model kompleks yang terdiri daripada berbilang lapisan neuron yang digunakan untuk tugas seperti klasifikasi data, regresi dan pengelompokan. Latihan dan inferens rangkaian saraf memerlukan sejumlah besar pendaraban matriks, konvolusi dan operasi pengiraan lain, jadi kerumitan pengiraan adalah sangat tinggi. FLOPS (FloatingPointOperationsperSecond) boleh digunakan untuk mengukur kerumitan pengiraan rangkaian saraf untuk menilai kecekapan penggunaan sumber pengiraan model. FLOP

Pengenalan kepada SqueezeNet dan ciri-cirinya Pengenalan kepada SqueezeNet dan ciri-cirinya Jan 22, 2024 pm 07:15 PM

SqueezeNet ialah algoritma kecil dan tepat yang memberikan keseimbangan yang baik antara ketepatan tinggi dan kerumitan rendah, menjadikannya sesuai untuk sistem mudah alih dan terbenam dengan sumber terhad. Pada 2016, penyelidik dari DeepScale, University of California, Berkeley, dan Stanford University mencadangkan SqueezeNet, rangkaian neural convolutional (CNN) yang padat dan cekap. Dalam beberapa tahun kebelakangan ini, penyelidik telah membuat beberapa penambahbaikan pada SqueezeNet, termasuk SqueezeNetv1.1 dan SqueezeNetv2.0. Penambahbaikan dalam kedua-dua versi bukan sahaja meningkatkan ketepatan tetapi juga mengurangkan kos pengiraan. Ketepatan SqueezeNetv1.1 pada dataset ImageNet

Definisi dan analisis struktur rangkaian neural kabur Definisi dan analisis struktur rangkaian neural kabur Jan 22, 2024 pm 09:09 PM

Rangkaian saraf kabur ialah model hibrid yang menggabungkan logik kabur dan rangkaian saraf untuk menyelesaikan masalah kabur atau tidak pasti yang sukar dikendalikan dengan rangkaian saraf tradisional. Reka bentuknya diilhamkan oleh kekaburan dan ketidakpastian dalam kognisi manusia, jadi ia digunakan secara meluas dalam sistem kawalan, pengecaman corak, perlombongan data dan bidang lain. Seni bina asas rangkaian neural kabur terdiri daripada subsistem kabur dan subsistem saraf. Subsistem kabur menggunakan logik kabur untuk memproses data input dan menukarnya kepada set kabur untuk menyatakan kekaburan dan ketidakpastian data input. Subsistem saraf menggunakan rangkaian saraf untuk memproses set kabur untuk tugasan seperti pengelasan, regresi atau pengelompokan. Interaksi antara subsistem kabur dan subsistem saraf menjadikan rangkaian neural kabur mempunyai keupayaan pemprosesan yang lebih berkuasa dan boleh

Penghapusan imej menggunakan rangkaian saraf konvolusi Penghapusan imej menggunakan rangkaian saraf konvolusi Jan 23, 2024 pm 11:48 PM

Rangkaian neural konvolusi berfungsi dengan baik dalam tugasan menghilangkan imej. Ia menggunakan penapis yang dipelajari untuk menapis bunyi dan dengan itu memulihkan imej asal. Artikel ini memperkenalkan secara terperinci kaedah denoising imej berdasarkan rangkaian neural convolutional. 1. Gambaran Keseluruhan Rangkaian Neural Konvolusi Rangkaian saraf konvolusi ialah algoritma pembelajaran mendalam yang menggunakan gabungan berbilang lapisan konvolusi, lapisan gabungan dan lapisan bersambung sepenuhnya untuk mempelajari dan mengelaskan ciri imej. Dalam lapisan konvolusi, ciri tempatan imej diekstrak melalui operasi konvolusi, dengan itu menangkap korelasi spatial dalam imej. Lapisan pengumpulan mengurangkan jumlah pengiraan dengan mengurangkan dimensi ciri dan mengekalkan ciri utama. Lapisan bersambung sepenuhnya bertanggungjawab untuk memetakan ciri dan label yang dipelajari untuk melaksanakan pengelasan imej atau tugas lain. Reka bentuk struktur rangkaian ini menjadikan rangkaian neural konvolusi berguna dalam pemprosesan dan pengecaman imej.

Bandingkan persamaan, perbezaan dan hubungan antara lilitan diluaskan dan lilitan atrus Bandingkan persamaan, perbezaan dan hubungan antara lilitan diluaskan dan lilitan atrus Jan 22, 2024 pm 10:27 PM

Konvolusi diluaskan dan lilitan diluaskan adalah operasi yang biasa digunakan dalam rangkaian neural konvolusi Artikel ini akan memperkenalkan perbezaan dan hubungannya secara terperinci. 1. Konvolusi diluaskan Konvolusi diluaskan, juga dikenali sebagai lilitan diluaskan atau lilitan diluaskan, ialah operasi dalam rangkaian neural konvolusi. Ia adalah lanjutan berdasarkan operasi lilitan tradisional dan meningkatkan medan penerimaan kernel lilitan dengan memasukkan lubang dalam kernel lilitan. Dengan cara ini, rangkaian boleh menangkap lebih banyak ciri yang lebih luas. Konvolusi dilatasi digunakan secara meluas dalam bidang pemprosesan imej dan boleh meningkatkan prestasi rangkaian tanpa menambah bilangan parameter dan jumlah pengiraan. Dengan meluaskan medan penerimaan kernel lilitan, lilitan diluaskan boleh memproses maklumat global dalam imej dengan lebih baik, sekali gus meningkatkan kesan pengekstrakan ciri. Idea utama lilitan diluaskan adalah untuk memperkenalkan beberapa

rangkaian neural convolutional sebab rangkaian neural convolutional sebab Jan 24, 2024 pm 12:42 PM

Rangkaian neural convolutional kausal ialah rangkaian neural convolutional khas yang direka untuk masalah kausalitas dalam data siri masa. Berbanding dengan rangkaian neural convolutional konvensional, rangkaian neural convolutional kausal mempunyai kelebihan unik dalam mengekalkan hubungan kausal siri masa dan digunakan secara meluas dalam ramalan dan analisis data siri masa. Idea teras rangkaian neural convolutional kausal adalah untuk memperkenalkan kausalitas dalam operasi konvolusi. Rangkaian saraf konvolusional tradisional boleh melihat data secara serentak sebelum dan selepas titik masa semasa, tetapi dalam ramalan siri masa, ini mungkin membawa kepada masalah kebocoran maklumat. Kerana keputusan ramalan pada titik masa semasa akan dipengaruhi oleh data pada titik masa akan datang. Rangkaian saraf konvolusi penyebab menyelesaikan masalah ini Ia hanya dapat melihat titik masa semasa dan data sebelumnya, tetapi tidak dapat melihat data masa depan.

See all articles