util

package
v0.0.0-...-5b2c132 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package util ...

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AnnealingLearningRate

func AnnealingLearningRate(eta0, decay float64, epoch int) float64

AnnealingLearningRate returns an annealed learning rate by the following formula:

η = η_0 / (1 + decay * epoch)

func GenInputsAndLabelsFromCorpus

func GenInputsAndLabelsFromCorpus[T TokenType](corpus [][]T, vocab map[T]int, ctxLen int) ([][]int, []int)

func GenVocabFromCorpus

func GenVocabFromCorpus[T TokenType](corpus [][]T, eos T) map[T]int

func GetIndexToToken

func GetIndexToToken[T TokenType](vocab map[T]int) []T

func IndexesToTokens

func IndexesToTokens[T TokenType](indexes []int, i2t []T) []T

func InteractiveTrain

func InteractiveTrain(cfg *TrainConfig, interactive bool, train func() time.Duration, predict func())

func MaskedAttention

func MaskedAttention[T any](ks, qs, vs [][]T, mul func([]T, []T) T, softmax func([]T) []T) (out []T)

func Must1

func Must1[T any](x T, err error) T

func NumberSliceConvert

func NumberSliceConvert[From, To constraints.Integer | constraints.Float](vs []From) []To

func OneHot

func OneHot(index, vocabSize int) []float64

func OneHots

func OneHots(indexes []int, vocabSize int) []float64

func PredictionPrecision

func PredictionPrecision(p Predictor, testSet []Sample, isCorrect IsCorrectFunc) float32

func RandMultinomial

func RandMultinomial(probDist []float64) int

func RandomUniformSample

func RandomUniformSample(min, max float64) float64

func ReadCSVDataSet

func ReadCSVDataSet(file string) ([][]string, error)

func ShuffleSamples

func ShuffleSamples[T any](samples []T)

func SliceConvert

func SliceConvert[From, To any](s []From) []To

func Softmax

func Softmax(t float64, xs []float64) []float64

func SplitDataSet

func SplitDataSet[T any](samples []T, trainSplit, valSplit float64) (training, validation, testing []T)

func TokensToIndexes

func TokensToIndexes[T TokenType](tokens []T, vocab map[T]int) []int

func Transpose

func Transpose[T any](mat [][]T) [][]T

Types

type IsCorrectFunc

type IsCorrectFunc func(pred, label []float64) bool

type LearningRateFunc

type LearningRateFunc func(grad float64) (rate float64)

func AnnealingLearningRateFunc

func AnnealingLearningRateFunc(eta, decay float64, epoch int) LearningRateFunc

type Optimizer

type Optimizer interface {
	Learn() float64
}

func AdamOptimizer

func AdamOptimizer(params []Parameter, eta, beta1, beta2, epsilon float64) Optimizer

func DefaultAdamOptimizer

func DefaultAdamOptimizer(params []Parameter, eta float64) Optimizer

func SGDOptimizer

func SGDOptimizer(params []Parameter, eta float64) Optimizer

type Parameter

type Parameter interface {
	Learn(delta float64)
	SetV(float64)
	ZeroG()
	G() float64
}

type Predictor

type Predictor interface {
	Predict([]float64) []float64
}

type Sample

type Sample struct {
	X []float64 // input
	Y []float64 // output
}

func GenDatasetFromInputsAndLabels

func GenDatasetFromInputsAndLabels(inputs [][]int, labels []int) (samples []Sample)

func GenOneHotDatasetFromInputsAndLabels

func GenOneHotDatasetFromInputsAndLabels(inputs [][]int, labels []int, vocabSize int) (samples []Sample)

type TokenType

type TokenType interface {
	~string | byte
}

type TrainConfig

type TrainConfig struct {
	BatchSize        int
	Epochs           int
	StopEps          float64
	Optimizer        string
	LearningRate     float64
	LogEpochInterval int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL