Go में मशीन लर्निंग: Golang के लिए ML, न्यूरल नेटवर्क और NLP लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go में मशीन लर्निंग: Golang के लिए लाइब्रेरी की समीक्षा

हालांकि Python मशीन लर्निंग का राजा बना हुआ है, Go (Golang) का उपयोग प्रोडक्शन सिस्टम, माइक्रोसर्विसेज और हाई-लोड एप्लिकेशन में तेजी से बढ़ रहा है, जहां गति, समानांतरता और डिप्लॉयमेंट में आसानी महत्वपूर्ण है। इस लेख में, हम Go पर मशीन लर्निंग के लिए प्रमुख लाइब्रेरी, उनकी क्षमताएं, कोड उदाहरण और उपयोग के परिदृश्यों पर चर्चा करेंगे।

ML के लिए Go क्यों?

Go का उद्देश्य शोध कार्य में Python को बदलना नहीं है। इसकी ताकत इंफ्रास्ट्रक्चर के साथ एकीकरण, कम मेमोरी खपत, अंतर्निहित कंकरेंसी सपोर्ट (goroutines) और एक बाइनरी में कंपाइलेशन है। यह निम्नलिखित के लिए आदर्श विकल्प है:

  • प्रशिक्षित मॉडल पर आधारित भविष्यवाणी (inference) सेवाएं
  • रीयल-टाइम स्ट्रीमिंग डेटा प्रोसेसिंग
  • उच्च थ्रूपुट वाले डेटा पाइपलाइन बनाना

1. Gorgonia — न्यूरल नेटवर्क के लिए फ्रेमवर्क

Gorgonia Go पर TensorFlow और PyTorch का विकल्प है। यह ऑटोमैटिक डिफरेंशिएशन के साथ न्यूरल नेटवर्क बनाने और प्रशिक्षित करने की सुविधा देता है।

इंस्टॉलेशन:

go get gorgonia.org/gorgonia

उदाहरण: सरल लॉजिस्टिक रिग्रेशन

package main

import (
    "fmt"
    "gorgonia.org/gorgonia"
    "gorgonia.org/tensor"
)

func main() {
    g := gorgonia.NewGraph()

    // इनपुट डेटा (4x2 मैट्रिक्स)
    x := gorgonia.NewMatrix(g, tensor.Float64, gorgonia.WithShape(4, 2), gorgonia.WithName("x"))
    // वेट
    w := gorgonia.NewMatrix(g, tensor.Float64, gorgonia.WithShape(2, 1), gorgonia.WithName("w"))
    // बायस
    b := gorgonia.NewScalar(g, tensor.Float64, gorgonia.WithName("b"))

    // लीनियर लेयर: y = x*w + b
    xw, _ := gorgonia.Mul(x, w)
    y, _ := gorgonia.Add(xw, b)

    // एक्टिवेशन फंक्शन (सिग्मॉइड)
    activated, _ := gorgonia.Sigmoid(y)

    machine := gorgonia.NewTapeMachine(g)
    // डेटा भरना
    gorgonia.Let(x, tensor.New(tensor.WithBacking([]float64{1,2,3,4,5,6,7,8}), tensor.WithShape(4,2)))
    gorgonia.Let(w, tensor.New(tensor.WithBacking([]float64{0.5, -0.2}), tensor.WithShape(2,1)))
    gorgonia.Let(b, 0.1)

    if err := machine.RunAll(); err != nil {
        fmt.Println(err)
    }

    fmt.Printf("परिणाम: %v\n", activated.Value())
}

2. GoLearn — क्लासिकल ML एल्गोरिदम

GoLearn (golearn) एक लाइब्रेरी है जिसमें KNN, डिसीजन ट्री, रैंडम फॉरेस्ट, लीनियर रिग्रेशन और क्लस्टरिंग शामिल हैं। इसका API sklearn जैसा है।

इंस्टॉलेशन:

go get -u github.com/sjwhitworth/golearn

उदाहरण: K-निकटतम पड़ोसी (KNN)

package main

import (
    "fmt"
    "github.com/sjwhitworth/golearn/base"
    "github.com/sjwhitworth/golearn/evaluation"
    "github.com/sjwhitworth/golearn/knn"
)

func main() {
    // डेटा लोड करना (CSV)
    rawData, err := base.ParseCSVToInstances("iris.csv", true)
    if err != nil {
        panic(err)
    }

    // KNN बनाना k=3 और यूक्लिडियन मेट्रिक के साथ
    cls := knn.NewKnnClassifier("euclidean", 3)

    // train/test में विभाजन
    trainData, testData := base.InstancesTrainTestSplit(rawData, 0.67)

    // प्रशिक्षण
    cls.Fit(trainData)

    // भविष्यवाणी
    predictions, err := cls.Predict(testData)
    if err != nil {
        panic(err)
    }

    // सटीकता का मूल्यांकन
    accuracy, err := evaluation.GetAccuracy(testData, predictions)
    fmt.Printf("सटीकता: %.2f%%\n", accuracy*100)
}

3. Goml — तेज एकीकरण के लिए हल्के मॉडल

Goml न्यूनतम कोड के साथ लीनियर और लॉजिस्टिक रिग्रेशन, नेव बेज़ और न्यूरल नेटवर्क के सरल कार्यान्वयन प्रदान करता है।

package main

import (
    "fmt"
    "github.com/cdipaolo/goml/base"
    "github.com/cdipaolo/goml/text"
)

func main() {
    // टेक्स्ट वर्गीकरण के लिए डेटा
    X := [][]float64{
        {1, 0, 1, 0},
        {0, 1, 0, 1},
        {1, 1, 0, 0},
    }
    Y := []float64{0,                    

अनुशंसाएँ