diff --git a/nn/init.go b/nn/init.go index 983528b..b94a180 100644 --- a/nn/init.go +++ b/nn/init.go @@ -245,7 +245,7 @@ func (k *kaimingUniformInit) InitTensor(dims []int64, device gotch.Device, dtype retVal.Uniform_(-bound, bound) */ - // For now, just make a random norm + // NOTE. For now, just make a random norm retVal = ts.MustRandn(dims, dtype, device) return retVal diff --git a/nn/linear.go b/nn/linear.go index c4d763c..6216a23 100644 --- a/nn/linear.go +++ b/nn/linear.go @@ -100,7 +100,11 @@ func NewLinear(vs *Path, inDim, outDim int64, c *LinearConfig) *Linear { // 1 1 1 ] func (l *Linear) Forward(xs *ts.Tensor) (retVal *ts.Tensor) { mul := xs.MustMatmul(l.Ws, false) - return mul.MustAdd(l.Bs, true) + if l.Bs != nil { + return mul.MustAdd(l.Bs, true) + } else { + return mul + } } // ForwardT implements ModuleT interface for Linear layer. diff --git a/ts/tensor.go b/ts/tensor.go index 3d3bbd8..547c9f0 100644 --- a/ts/tensor.go +++ b/ts/tensor.go @@ -129,7 +129,9 @@ func freeCTensor(ts *Tensor) error { // Just return if it has been deleted previously! if unsafe.Pointer(ts.ctensor) == nil { - log.Printf("INFO: ctensor is nil. Nothing to delete here...\n") + if gotch.Debug { + log.Printf("INFO: ctensor is nil. Nothing to delete here...\n") + } return nil }