Jika Anda menyukai proyek ini, silakan ★ Bintang repositori ini untuk menunjukkan dukungan Anda! ?
15 Jan 2024 - Ketika saya merenungkan perjalanan Spago, saya dipenuhi dengan rasa terima kasih atas pengalaman memperkaya yang telah diberikan kepada saya. Menguasai pergi dan meninjau kembali dasar -dasar pembelajaran mendalam melalui Spago sangat bermanfaat. Fitur unik Spago, terutama grafik perhitungan asinkron dan berfokus pada pengkodean bersih, telah menjadikannya proyek yang luar biasa untuk dikerjakan. Tujuan kami adalah untuk membuat kerangka kerja ML minimalis di GO, menghilangkan ketergantungan pada Python dalam produksi dengan memungkinkan pembuatan executable mandiri. Pendekatan Spago ini berhasil mendukung beberapa proyek saya di lingkungan produksi yang menantang.
Namun, upaya untuk meningkatkan SPAGO ke tingkat di mana ia dapat bersaing secara efektif dalam 'ruang AI' yang berkembang, yang sekarang secara luas melibatkan perhitungan pada GPU, membutuhkan komitmen substansial. Pada saat yang sama, visi yang dicapai Spago untuk dicapai sekarang direalisasikan secara mengesankan oleh Proyek Lilin di Rust. Dengan kapasitas saya yang terbatas untuk mendedikasikan perhatian yang diperlukan untuk SPAGO, dan dengan tidak adanya tim pemeliharaan pendukung, saya telah membuat keputusan pragmatis untuk menjeda proyek untuk saat ini.
Saya sangat berterima kasih atas perjalanan yang telah dilakukan Spago dan untuk komunitas yang telah mendukungnya. Ketika kami terus menjelajahi bidang pembelajaran mesin yang terus berkembang, saya menantikan perkembangan menarik yang ada di depan.
Salam hangat,
Matteo Grella
Spago adalah perpustakaan pembelajaran mesin yang ditulis dalam GO murni yang dirancang untuk mendukung arsitektur saraf yang relevan dalam pemrosesan bahasa alami .
Spago mandiri, karena menggunakan grafik komputasi ringan sendiri baik untuk pelatihan dan inferensi, mudah dimengerti dari awal hingga akhir.
Itu menyediakan:
Jika Anda tertarik dengan fungsionalitas terkait NLP, pastikan untuk menjelajahi paket Cybertron!
Persyaratan:
Klone repo ini atau dapatkan perpustakaan:
go get -u github.com/nlpodyssey/spagoTempat yang baik untuk memulai adalah dengan melihat implementasi model saraf bawaan, seperti LSTM.
Berikut adalah contoh cara menghitung jumlah dua variabel:
package main
import (
"fmt"
"log"
"github.com/nlpodyssey/spago/ag"
"github.com/nlpodyssey/spago/mat"
)
func main () {
// define the type of the elements in the tensors
type T = float32
// create a new node of type variable with a scalar
a := mat . Scalar ( T ( 2.0 ), mat . WithGrad ( true )) // create another node of type variable with a scalar
b := mat . Scalar ( T ( 5.0 ), mat . WithGrad ( true )) // create an addition operator (the calculation is actually performed here)
c := ag . Add ( a , b )
// print the result
fmt . Printf ( "c = %v (float%d) n " , c . Value (), c . Value (). Item (). BitSize ())
c . AccGrad ( mat . Scalar ( T ( 0.5 )))
if err := ag . Backward ( c ); err != nil {
log . Fatalf ( "error during Backward(): %v" , err )
}
fmt . Printf ( "ga = %v n " , a . Grad ())
fmt . Printf ( "gb = %v n " , b . Grad ())
}Keluaran:
c = [7] (float32)
ga = [0.5]
gb = [0.5]Berikut adalah implementasi sederhana dari formula Perceptron:
package main
import (
"fmt"
. "github.com/nlpodyssey/spago/ag"
"github.com/nlpodyssey/spago/mat"
)
func main () {
x := mat . Scalar ( - 0.8 )
w := mat . Scalar ( 0.4 )
b := mat . Scalar ( - 0.2 )
y := Sigmoid ( Add ( Mul ( w , x ), b ))
fmt . Printf ( "y = %0.3f n " , y . Value (). Item ())
}Jika Anda berpikir ada sesuatu yang hilang atau bisa ditingkatkan, silakan buka masalah dan tarik permintaan.
Untuk mulai berkontribusi, periksa pedoman yang berkontribusi.
Kami sangat mendorong Anda untuk membuat masalah karena akan berkontribusi pada pertumbuhan masyarakat. Namun, jika Anda lebih suka berkomunikasi dengan kami secara pribadi, jangan ragu untuk mengirim email ke Matteo Grella dengan pertanyaan atau komentar yang mungkin Anda miliki.