Goro adalah perpustakaan pembelajaran mesin tingkat tinggi untuk dibangun di Gorgonia. Ini bertujuan untuk memiliki nuansa yang sama dengan keras.
import (
. "github.com/aunum/goro/pkg/v1/model"
"github.com/aunum/goro/pkg/v1/layer"
)
// create the 'x' input e.g. mnist image
x := NewInput ( "x" , [] int { 1 , 28 , 28 })
// create the 'y' or expect output e.g. labels
y := NewInput ( "y" , [] int { 10 })
// create a new sequential model with the name 'mnist'
model , _ := NewSequential ( "mnist" )
// add layers to the model
model . AddLayers (
layer. Conv2D { Input : 1 , Output : 32 , Width : 3 , Height : 3 },
layer. MaxPooling2D {},
layer. Conv2D { Input : 32 , Output : 64 , Width : 3 , Height : 3 },
layer. MaxPooling2D {},
layer. Conv2D { Input : 64 , Output : 128 , Width : 3 , Height : 3 },
layer. MaxPooling2D {},
layer. Flatten {},
layer. FC { Input : 128 * 3 * 3 , Output : 100 },
layer. FC { Input : 100 , Output : 10 , Activation : layer . Softmax },
)
// pick an optimizer
optimizer := g . NewRMSPropSolver ()
// compile the model with options
model . Compile ( xi , yi ,
WithOptimizer ( optimizer ),
WithLoss ( m . CrossEntropy ),
WithBatchSize ( 100 ),
)
// fit the model
model . Fit ( xTrain , yTrain )
// use the model to predict an 'x'
prediction , _ := model . Predict ( xTest )
// fit the model with a batch
model . FitBatch ( xTrainBatch , yTrainBatch )
// use the model to predict a batch of 'x'
prediction , _ = model . PredictBatch ( xTestBatch )
Lihat folder contoh misalnya implementasi.
Ada banyak contoh dalam Perpustakaan Pembelajaran Penguatan Emas.
Setiap paket berisi readme yang menjelaskan penggunaannya, juga lihat Godoc.
Harap buka MR untuk masalah atau permintaan fitur apa pun.
Jangan ragu untuk ping @pbarker di gopher slack.