프로젝트가 마음에 들면 ★이 저장소를 별표로 스타일로 지원합니다! ?
2024 년 1 월 15 일 - Spago의 여정을 반영하면서, 나는 그것이 나에게 제공 한 풍요로운 경험에 대한 감사로 가득 차 있습니다. Spago를 통한 딥 러닝의 기본 사항을 마스터하는 것은 엄청나게 보람이 있습니다. Spago의 독특한 기능, 특히 비동기 계산 그래프 및 청정 코딩에 중점을 두어 작업 할 특별한 프로젝트가되었습니다. 우리의 목표는 GO에서 미니멀리스트 ML 프레임 워크를 만들어 독립형 실행 파일의 생성을 가능하게하여 생산에서 Python에 대한 의존성을 제거하는 것이 었습니다. Spago의 이러한 접근 방식은 도전적인 생산 환경에서 여러 프로젝트에 성공적으로 전원을 공급했습니다.
그러나 Spago를 진화하는 'AI Space'에서 효과적으로 경쟁 할 수있는 수준으로 상승하려는 노력은 이제 GPU에 대한 계산을 광범위하게 포함하고 있으므로 상당한 약속이 필요합니다. 동시에, Spago가 달성하고자하는 비전은 이제 Rust의 Candle Project에 의해 인상적으로 실현되고 있습니다. Spago에 필요한주의를 기울일 수있는 제한된 능력과 지원 유지 보수 팀이 없으면 현재 프로젝트를 일시 중지하기로 결정했습니다.
나는 Spago가 나를 데려 간 여행과 그것을지지 한 지역 사회에 대해 깊이 감사합니다. 우리는 계속 진화하는 기계 학습 분야를 계속 탐구함에 따라 앞으로의 흥미 진진한 발전을 기대합니다.
따뜻한 안부,
마테오 그 렐라
Spago는 자연어 처리 의 관련 신경 아키텍처를 지원하도록 설계된 Pure Go로 작성된 머신 러닝 라이브러리입니다.
Spago는 스스로 함유되어 있으며, 훈련 및 추론을 위해 자체 경량 계산 그래프를 사용하며 처음부터 끝까지 이해하기 쉽습니다.
그것은 제공합니다 :
NLP 관련 기능에 관심이 있다면 Cybertron 패키지를 살펴보십시오!
요구 사항 :
이 저장소를 복제하거나 라이브러리를 얻으십시오.
go get -u github.com/nlpodyssey/spago시작하기에 좋은 곳은 LSTM과 같은 내장 신경 모델의 구현을 보는 것입니다.
다음은 두 변수의 합을 계산하는 방법의 예입니다.
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 ())
}산출:
c = [7] (float32)
ga = [0.5]
gb = [0.5]다음은 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 ())
}뭔가 빠졌거나 개선 될 수 있다고 생각되면 문제를 열고 요청을 가져 오십시오.
기여를 시작하려면 기고 가이드 라인을 확인하십시오.
커뮤니티의 성장에 기여할 수 있으므로 문제를 일으키는 것이 좋습니다. 그러나 개인적으로 당사와 의사 소통하는 것을 선호하는 경우 질문이나 의견이 있으면 Matteo Grella에게 이메일을 보내주십시오.