本文整理匯總了Golang中github.com/unixpickle/weakai/neuralnet.Network.Serialize方法的典型用法代碼示例。如果您正苦於以下問題:Golang Network.Serialize方法的具體用法?Golang Network.Serialize怎麽用?Golang Network.Serialize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/unixpickle/weakai/neuralnet.Network
的用法示例。
在下文中一共展示了Network.Serialize方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TrainCmd
//.........這裏部分代碼省略.........
}
log.Println("Creating network...")
var network neuralnet.Network
networkData, err := ioutil.ReadFile(netPath)
if err == nil {
network, err = neuralnet.DeserializeNetwork(networkData)
if err != nil {
fmt.Fprintln(os.Stderr, "Failed to load network:", err)
os.Exit(1)
}
log.Println("Loaded network from file.")
} else {
mean, stddev := sampleStatistics(images)
convLayer := &neuralnet.ConvLayer{
FilterCount: FilterCount,
FilterWidth: 4,
FilterHeight: 4,
Stride: 2,
InputWidth: width,
InputHeight: height,
InputDepth: ImageDepth,
}
maxLayer := &neuralnet.MaxPoolingLayer{
XSpan: 3,
YSpan: 3,
InputWidth: convLayer.OutputWidth(),
InputHeight: convLayer.OutputHeight(),
InputDepth: convLayer.OutputDepth(),
}
convLayer1 := &neuralnet.ConvLayer{
FilterCount: FilterCount1,
FilterWidth: 3,
FilterHeight: 3,
Stride: 2,
InputWidth: maxLayer.OutputWidth(),
InputHeight: maxLayer.OutputHeight(),
InputDepth: maxLayer.InputDepth,
}
network = neuralnet.Network{
&neuralnet.RescaleLayer{
Bias: -mean,
Scale: 1 / stddev,
},
convLayer,
neuralnet.HyperbolicTangent{},
maxLayer,
neuralnet.HyperbolicTangent{},
convLayer1,
neuralnet.HyperbolicTangent{},
&neuralnet.DenseLayer{
InputCount: convLayer1.OutputWidth() * convLayer1.OutputHeight() *
convLayer1.OutputDepth(),
OutputCount: HiddenSize,
},
neuralnet.HyperbolicTangent{},
&neuralnet.DenseLayer{
InputCount: HiddenSize,
OutputCount: len(images),
},
&neuralnet.LogSoftmaxLayer{},
}
network.Randomize()
log.Println("Created new network.")
}
samples := neuralSamples(images)
sgd.ShuffleSampleSet(samples)
validationCount := int(ValidationFraction * float64(samples.Len()))
validationSamples := samples.Subset(0, validationCount)
trainingSamples := samples.Subset(validationCount, samples.Len())
costFunc := neuralnet.DotCost{}
gradienter := &sgd.Adam{
Gradienter: &neuralnet.BatchRGradienter{
Learner: network.BatchLearner(),
CostFunc: &neuralnet.RegularizingCost{
Variables: network.Parameters(),
Penalty: Regularization,
CostFunc: costFunc,
},
},
}
sgd.SGDInteractive(gradienter, trainingSamples, StepSize, BatchSize, func() bool {
log.Printf("Costs: validation=%d/%d cost=%f",
countCorrect(network, validationSamples), validationSamples.Len(),
neuralnet.TotalCost(costFunc, network, trainingSamples))
return true
})
data, _ := network.Serialize()
if err := ioutil.WriteFile(netPath, data, 0755); err != nil {
fmt.Fprintln(os.Stderr, "Failed to save:", err)
os.Exit(1)
}
}