Jadual Kandungan
(2) torch.linspace(-1, 1, 101, require_grad; =False) digunakan untuk menentukan Hasilkan satu set nilai jarak yang sama dalam selang tersebut Fungsi ini menerima tiga parameter: nilai permulaan, nilai akhir dan bilangan elemen, dan mengembalikan tensor yang mengandungi bilangan nilai yang sama jaraknya
(6) Selepas setiap pusingan latihan, fungsi ramalan perlu dilaksanakan untuk membuat ramalan. Fungsi ini menerima dua model parameter (model terlatih) dan teX (data yang perlu diramalkan). Langkah-langkah khusus adalah seperti berikut:
4、神经网络
Rumah Peranti teknologi AI Pembelajaran Mesin |. Tutorial Ringkas PyTorch Bahagian 1

Pembelajaran Mesin |. Tutorial Ringkas PyTorch Bahagian 1

Nov 02, 2023 pm 05:25 PM
pembelajaran mesin pytorch

Artikel sebelumnya memperkenalkan penormalan ciri dan tensor Seterusnya, saya akan menulis dua tutorial ringkas tentang PyTorch, terutamanya memperkenalkan amalan mudah PyTorch.

1 Rajah 1

import torcha = torch.tensor([2, 3, 4])b = torch.tensor([3, 4, 5])print("a + b: ", (a + b).numpy())print("a - b: ", (a - b).numpy())print("a * b: ", (a * b).numpy())print("a / b: ", (a / b).numpy())
Salin selepas log masuk

(1) Mulakan dengan fungsi utama obor.manual_seed(42) digunakan untuk menetapkan benih penjana nombor rawak untuk memastikan urutan nombor rawak yang dihasilkan adalah sama setiap kali. run. Fungsi ini menerima Parameter integer berfungsi sebagai benih dan boleh digunakan dalam senario yang memerlukan nombor rawak seperti melatih rangkaian saraf untuk memastikan kebolehulangan hasil

(2) torch.linspace(-1, 1, 101, require_grad; =False) digunakan untuk menentukan Hasilkan satu set nilai jarak yang sama dalam selang tersebut Fungsi ini menerima tiga parameter: nilai permulaan, nilai akhir dan bilangan elemen, dan mengembalikan tensor yang mengandungi bilangan nilai yang sama jaraknya

(3) Pelaksanaan dalaman build_model1:

torch.nn.Sequential(torch.nn.Linear(1, 1, bias=False)) menggunakan pembina kelas nn.Sequential, melepasi lapisan linear kepadanya sebagai parameter, dan mengembalikan Model rangkaian saraf yang mengandungi lapisan linear 机器学习 | PyTorch简明教程上篇build_model2 mempunyai fungsi yang sama seperti build_model1, menggunakan kaedah add_module() untuk menambah submodul bernama linear padanya; (reductinotallow=' mean') mentakrifkan fungsi kehilangan;

Gunakan optim.SGD(model.parameters(), lr=0.01, momentum=0.9) untuk melaksanakan algoritma pengoptimuman Stochastic Gradient Descent (SGD)

Letakkan set latihan melalui saiz batch Split, loop 100 kali

(7) Seterusnya ialah train function training, yang digunakan untuk melatih model rangkaian saraf Secara khusus, fungsi ini menerima parameter berikut:

    model: model rangkaian saraf, biasanya. satu yang diwarisi daripada Contoh kelas nn.Modul;
  • x: data input , ialah tensor jenis obor.Tensor
  • y: data sasaran, ialah tensor jenis obor.Tensor

(8) kereta api ialah kaedah yang biasa digunakan dalam proses latihan PyTorch, dan langkah-langkahnya adalah seperti berikut:

Tetapkan model kepada mod latihan, iaitu, dayakan operasi khas yang digunakan semasa latihan seperti keciciran dan penormalan kelompok

Kosongkan cache kecerunan pengoptimum untuk pusingan baharu pengiraan kecerunan;

    Haruskan data input kepada model , kira nilai ramalan model dan hantar nilai ramalan dan data sasaran kepada fungsi kehilangan untuk mengira nilai kerugian
  • Rambat balik nilai kerugian dan kira kecerunan parameter model ;
  • Gunakan pengoptimum untuk mengemas kini parameter model untuk meminimumkan Transform nilai kerugian
  • Kembalikan nilai skalar bagi nilai kerugian
  • (9) print("Round = %d, loss value = %s" %; (i + 1, kos / num_batches)) Akhir sekali, cetak nilai pusingan latihan dan kerugian semasa Output kod di atas adalah seperti berikut:
a + b:[5 7 9]a - b:[-1 -1 -1]a * b:[ 6 12 20]a / b:[0.6666667 0.750.8]
Salin selepas log masuk
3 Regresi logistik

Regresi logistik menggunakan lengkung untuk mewakili trajektori sekumpulan titik diskret, seperti yang ditunjukkan dalam rajah. :
  • Rajah 2
  • import torchfrom torch import optimdef build_model1():return torch.nn.Sequential(torch.nn.Linear(1, 1, bias=False))def build_model2():model = torch.nn.Sequential()model.add_module("linear", torch.nn.Linear(1, 1, bias=False))return modeldef train(model, loss, optimizer, x, y):model.train()optimizer.zero_grad()fx = model.forward(x.view(len(x), 1)).squeeze()output = loss.forward(fx, y)output.backward()optimizer.step()return output.item()def main():torch.manual_seed(42)X = torch.linspace(-1, 1, 101, requires_grad=False)Y = 2 * X + torch.randn(X.size()) * 0.33print("X: ", X.numpy(), ", Y: ", Y.numpy())model = build_model1()loss = torch.nn.MSELoss(reductinotallow='mean')optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)batch_size = 10for i in range(100):cost = 0.num_batches = len(X) // batch_sizefor k in range(num_batches):start, end = k * batch_size, (k + 1) * batch_sizecost += train(model, loss, optimizer, X[start:end], Y[start:end])print("Epoch = %d, cost = %s" % (i + 1, cost / num_batches))w = next(model.parameters()).dataprint("w = %.2f" % w.numpy())if __name__ == "__main__":main()
    Salin selepas log masuk
  • (1) Mulakan dengan fungsi utama, torch.manual_seed(42) diperkenalkan di atas, langkau di sini
  • (2) load_mnist adalah untuk memuat turun set data mnist sendiri dan kembalikan trX dan teX sebagai data input , try dan teY ialah data label
  • (3) pelaksanaan dalaman build_model: torch.nn.Sequential(torch.nn.Linear(input_dim, output_dim, bias=False)) digunakan untuk bina model rangkaian saraf yang mengandungi lapisan linear , bilangan ciri input model ialah input_dim, bilangan ciri output ialah output_dim, dan lapisan linear tidak mempunyai istilah bias, di mana n_classes=10 bermakna mengeluarkan 10 kategori; Selepas menulis semula: (3) Pelaksanaan dalaman build_model: Gunakan torch.nn.Sequential(torch.nn.Linear(input_dim, output_dim, bias=False)) untuk membina model rangkaian neural yang mengandungi lapisan linear Bilangan ciri input model ialah input_dim Bilangan ciri output ialah output_dim, dan lapisan linear tidak mempunyai istilah bias. Antaranya, n_classes=10 bermaksud mengeluarkan 10 kategori;
  • (4) Langkah-langkah lain adalah untuk menentukan fungsi kehilangan, pengoptimum keturunan kecerunan, membahagikan set latihan melalui saiz_kelompok, dan gelung 100 kali untuk kereta api

Gunakan optim.SGD (model .parameters(), lr=0.01, momentum=0.9) boleh melaksanakan algoritma pengoptimuman Stochastic Gradient Descent (SGD)

(6) Selepas setiap pusingan latihan, fungsi ramalan perlu dilaksanakan untuk membuat ramalan. Fungsi ini menerima dua model parameter (model terlatih) dan teX (data yang perlu diramalkan). Langkah-langkah khusus adalah seperti berikut:

  • model.eval()模型设置为评估模式,这意味着模型将不会进行训练,而是仅用于推理;
  • 将output转换为NumPy数组,并使用argmax()方法获取每个样本的预测类别;

(7)print("Epoch %d, cost = %f, acc = %.2f%%" % (i + 1, cost / num_batches, 100. * np.mean(predY == teY)))最后打印当前训练的轮次,损失值和acc,上述的代码输出如下(执行很快,但是准确率偏低):

...Epoch 91, cost = 0.252863, acc = 92.52%Epoch 92, cost = 0.252717, acc = 92.51%Epoch 93, cost = 0.252573, acc = 92.50%Epoch 94, cost = 0.252431, acc = 92.50%Epoch 95, cost = 0.252291, acc = 92.52%Epoch 96, cost = 0.252153, acc = 92.52%Epoch 97, cost = 0.252016, acc = 92.51%Epoch 98, cost = 0.251882, acc = 92.51%Epoch 99, cost = 0.251749, acc = 92.51%Epoch 100, cost = 0.251617, acc = 92.51%
Salin selepas log masuk

4、神经网络

一个经典的LeNet网络,用于对字符进行分类,如图:

机器学习 | PyTorch简明教程上篇图3

  • 定义一个多层的神经网络
  • 对数据集的预处理并准备作为网络的输入
  • 将数据输入到网络
  • 计算网络的损失
  • 反向传播,计算梯度
import numpy as npimport torchfrom torch import optimfrom data_util import load_mnistdef build_model(input_dim, output_dim):return torch.nn.Sequential(torch.nn.Linear(input_dim, 512, bias=False),torch.nn.Sigmoid(),torch.nn.Linear(512, output_dim, bias=False))def train(model, loss, optimizer, x_val, y_val):model.train()optimizer.zero_grad()fx = model.forward(x_val)output = loss.forward(fx, y_val)output.backward()optimizer.step()return output.item()def predict(model, x_val):model.eval()output = model.forward(x_val)return output.data.numpy().argmax(axis=1)def main():torch.manual_seed(42)trX, teX, trY, teY = load_mnist(notallow=False)trX = torch.from_numpy(trX).float()teX = torch.from_numpy(teX).float()trY = torch.tensor(trY)n_examples, n_features = trX.size()n_classes = 10model = build_model(n_features, n_classes)loss = torch.nn.CrossEntropyLoss(reductinotallow='mean')optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)batch_size = 100for i in range(100):cost = 0.num_batches = n_examples // batch_sizefor k in range(num_batches):start, end = k * batch_size, (k + 1) * batch_sizecost += train(model, loss, optimizer,trX[start:end], trY[start:end])predY = predict(model, teX)print("Epoch %d, cost = %f, acc = %.2f%%"% (i + 1, cost / num_batches, 100. * np.mean(predY == teY)))if __name__ == "__main__":main()
Salin selepas log masuk

(1)以上这段神经网络的代码与逻辑回归没有太多的差异,区别的地方是build_model,这里是构建一个包含两个线性层和一个Sigmoid激活函数的神经网络模型,该模型包含一个输入特征数量为input_dim,输出特征数量为output_dim的线性层,一个Sigmoid激活函数,以及一个输入特征数量为512,输出特征数量为output_dim的线性层;

(2)print("Epoch %d, cost = %f, acc = %.2f%%" % (i + 1, cost / num_batches, 100. * np.mean(predY == teY)))最后打印当前训练的轮次,损失值和acc,上述的代码输入如下(执行时间比逻辑回归要长,但是准确率要高很多):

第91个时期,费用= 0.054484,准确率= 97.58%第92个时期,费用= 0.053753,准确率= 97.56%第93个时期,费用= 0.053036,准确率= 97.60%第94个时期,费用= 0.052332,准确率= 97.61%第95个时期,费用= 0.051641,准确率= 97.63%第96个时期,费用= 0.050964,准确率= 97.66%第97个时期,费用= 0.050298,准确率= 97.66%第98个时期,费用= 0.049645,准确率= 97.67%第99个时期,费用= 0.049003,准确率= 97.67%第100个时期,费用= 0.048373,准确率= 97.68%
Salin selepas log masuk


Atas ialah kandungan terperinci Pembelajaran Mesin |. Tutorial Ringkas PyTorch Bahagian 1. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Artikel ini akan membawa anda memahami SHAP: penjelasan model untuk pembelajaran mesin Artikel ini akan membawa anda memahami SHAP: penjelasan model untuk pembelajaran mesin Jun 01, 2024 am 10:58 AM

Dalam bidang pembelajaran mesin dan sains data, kebolehtafsiran model sentiasa menjadi tumpuan penyelidik dan pengamal. Dengan aplikasi meluas model yang kompleks seperti kaedah pembelajaran mendalam dan ensemble, memahami proses membuat keputusan model menjadi sangat penting. AI|XAI yang boleh dijelaskan membantu membina kepercayaan dan keyakinan dalam model pembelajaran mesin dengan meningkatkan ketelusan model. Meningkatkan ketelusan model boleh dicapai melalui kaedah seperti penggunaan meluas pelbagai model yang kompleks, serta proses membuat keputusan yang digunakan untuk menerangkan model. Kaedah ini termasuk analisis kepentingan ciri, anggaran selang ramalan model, algoritma kebolehtafsiran tempatan, dsb. Analisis kepentingan ciri boleh menerangkan proses membuat keputusan model dengan menilai tahap pengaruh model ke atas ciri input. Anggaran selang ramalan model

Kenal pasti overfitting dan underfitting melalui lengkung pembelajaran Kenal pasti overfitting dan underfitting melalui lengkung pembelajaran Apr 29, 2024 pm 06:50 PM

Artikel ini akan memperkenalkan cara mengenal pasti pemasangan lampau dan kekurangan dalam model pembelajaran mesin secara berkesan melalui keluk pembelajaran. Underfitting dan overfitting 1. Overfitting Jika model terlampau latihan pada data sehingga ia mempelajari bunyi daripadanya, maka model tersebut dikatakan overfitting. Model yang dipasang terlebih dahulu mempelajari setiap contoh dengan sempurna sehingga ia akan salah mengklasifikasikan contoh yang tidak kelihatan/baharu. Untuk model terlampau, kami akan mendapat skor set latihan yang sempurna/hampir sempurna dan set pengesahan/skor ujian yang teruk. Diubah suai sedikit: "Punca overfitting: Gunakan model yang kompleks untuk menyelesaikan masalah mudah dan mengekstrak bunyi daripada data. Kerana set data kecil sebagai set latihan mungkin tidak mewakili perwakilan yang betul bagi semua data. 2. Underfitting Heru

Telus! Analisis mendalam tentang prinsip model pembelajaran mesin utama! Telus! Analisis mendalam tentang prinsip model pembelajaran mesin utama! Apr 12, 2024 pm 05:55 PM

Dalam istilah orang awam, model pembelajaran mesin ialah fungsi matematik yang memetakan data input kepada output yang diramalkan. Secara lebih khusus, model pembelajaran mesin ialah fungsi matematik yang melaraskan parameter model dengan belajar daripada data latihan untuk meminimumkan ralat antara output yang diramalkan dan label sebenar. Terdapat banyak model dalam pembelajaran mesin, seperti model regresi logistik, model pepohon keputusan, model mesin vektor sokongan, dll. Setiap model mempunyai jenis data dan jenis masalah yang berkenaan. Pada masa yang sama, terdapat banyak persamaan antara model yang berbeza, atau terdapat laluan tersembunyi untuk evolusi model. Mengambil perceptron penyambung sebagai contoh, dengan meningkatkan bilangan lapisan tersembunyi perceptron, kita boleh mengubahnya menjadi rangkaian neural yang mendalam. Jika fungsi kernel ditambah pada perceptron, ia boleh ditukar menjadi SVM. yang ini

Evolusi kecerdasan buatan dalam penerokaan angkasa lepas dan kejuruteraan penempatan manusia Evolusi kecerdasan buatan dalam penerokaan angkasa lepas dan kejuruteraan penempatan manusia Apr 29, 2024 pm 03:25 PM

Pada tahun 1950-an, kecerdasan buatan (AI) dilahirkan. Ketika itulah penyelidik mendapati bahawa mesin boleh melakukan tugas seperti manusia, seperti berfikir. Kemudian, pada tahun 1960-an, Jabatan Pertahanan A.S. membiayai kecerdasan buatan dan menubuhkan makmal untuk pembangunan selanjutnya. Penyelidik sedang mencari aplikasi untuk kecerdasan buatan dalam banyak bidang, seperti penerokaan angkasa lepas dan kelangsungan hidup dalam persekitaran yang melampau. Penerokaan angkasa lepas ialah kajian tentang alam semesta, yang meliputi seluruh alam semesta di luar bumi. Angkasa lepas diklasifikasikan sebagai persekitaran yang melampau kerana keadaannya berbeza daripada di Bumi. Untuk terus hidup di angkasa, banyak faktor mesti dipertimbangkan dan langkah berjaga-jaga mesti diambil. Para saintis dan penyelidik percaya bahawa meneroka ruang dan memahami keadaan semasa segala-galanya boleh membantu memahami cara alam semesta berfungsi dan bersedia untuk menghadapi kemungkinan krisis alam sekitar

Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Jun 03, 2024 pm 01:25 PM

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Lima sekolah pembelajaran mesin yang anda tidak tahu Lima sekolah pembelajaran mesin yang anda tidak tahu Jun 05, 2024 pm 08:51 PM

Pembelajaran mesin ialah cabang penting kecerdasan buatan yang memberikan komputer keupayaan untuk belajar daripada data dan meningkatkan keupayaan mereka tanpa diprogramkan secara eksplisit. Pembelajaran mesin mempunyai pelbagai aplikasi dalam pelbagai bidang, daripada pengecaman imej dan pemprosesan bahasa semula jadi kepada sistem pengesyoran dan pengesanan penipuan, dan ia mengubah cara hidup kita. Terdapat banyak kaedah dan teori yang berbeza dalam bidang pembelajaran mesin, antaranya lima kaedah yang paling berpengaruh dipanggil "Lima Sekolah Pembelajaran Mesin". Lima sekolah utama ialah sekolah simbolik, sekolah sambungan, sekolah evolusi, sekolah Bayesian dan sekolah analogi. 1. Simbolisme, juga dikenali sebagai simbolisme, menekankan penggunaan simbol untuk penaakulan logik dan ekspresi pengetahuan. Aliran pemikiran ini percaya bahawa pembelajaran adalah proses penolakan terbalik, melalui sedia ada

AI yang boleh dijelaskan: Menerangkan model AI/ML yang kompleks AI yang boleh dijelaskan: Menerangkan model AI/ML yang kompleks Jun 03, 2024 pm 10:08 PM

Penterjemah |. Disemak oleh Li Rui |. Chonglou Model kecerdasan buatan (AI) dan pembelajaran mesin (ML) semakin kompleks hari ini, dan output yang dihasilkan oleh model ini adalah kotak hitam – tidak dapat dijelaskan kepada pihak berkepentingan. AI Boleh Dijelaskan (XAI) bertujuan untuk menyelesaikan masalah ini dengan membolehkan pihak berkepentingan memahami cara model ini berfungsi, memastikan mereka memahami cara model ini sebenarnya membuat keputusan, dan memastikan ketelusan dalam sistem AI, Amanah dan akauntabiliti untuk menyelesaikan masalah ini. Artikel ini meneroka pelbagai teknik kecerdasan buatan (XAI) yang boleh dijelaskan untuk menggambarkan prinsip asasnya. Beberapa sebab mengapa AI boleh dijelaskan adalah penting Kepercayaan dan ketelusan: Untuk sistem AI diterima secara meluas dan dipercayai, pengguna perlu memahami cara keputusan dibuat

Adakah Flash Attention stabil? Meta dan Harvard mendapati bahawa sisihan berat model mereka berubah-ubah mengikut urutan magnitud Adakah Flash Attention stabil? Meta dan Harvard mendapati bahawa sisihan berat model mereka berubah-ubah mengikut urutan magnitud May 30, 2024 pm 01:24 PM

MetaFAIR bekerjasama dengan Harvard untuk menyediakan rangka kerja penyelidikan baharu untuk mengoptimumkan bias data yang dijana apabila pembelajaran mesin berskala besar dilakukan. Adalah diketahui bahawa latihan model bahasa besar sering mengambil masa berbulan-bulan dan menggunakan ratusan atau bahkan ribuan GPU. Mengambil model LLaMA270B sebagai contoh, latihannya memerlukan sejumlah 1,720,320 jam GPU. Melatih model besar memberikan cabaran sistemik yang unik disebabkan oleh skala dan kerumitan beban kerja ini. Baru-baru ini, banyak institusi telah melaporkan ketidakstabilan dalam proses latihan apabila melatih model AI generatif SOTA Mereka biasanya muncul dalam bentuk lonjakan kerugian Contohnya, model PaLM Google mengalami sehingga 20 lonjakan kerugian semasa proses latihan. Bias berangka adalah punca ketidaktepatan latihan ini,

See all articles