gpt4 book ai didi

go - 是否可以在 Golang 中 pickle 结构的实例

转载 作者:IT王子 更新时间:2023-10-29 01:13:12 25 4
gpt4 key购买 nike

我正在使用 Golang 进行一些机器学习。我现在碰壁了,我训练有素的分类器需要将近半分钟的时间来训练,我想保存分类器的那个实例,这样我就不必每次都从头开始训练。 Golang 应该怎么做?仅供引用,我的分类器是一个结构


当我用 python 做这类事情时,用 pickle 就很容易了。有没有等价物?

最佳答案

尝试 gobencoding/json编码你的对象。之后,您可以将字符串存储到文件中。

Here是一个使用 json 的例子:

package main

import (
"encoding/json"
"fmt"
"os"
)

type Book struct {
Title string
Pages []*Page
}

type Page struct {
pageNumber int // remember to Capitalize the fields you want to marshal
Content string
}

func main() {
// First make a book with nested array of struct pointers
myBook := &Book{Title: "this is a title", Pages: make([]*Page, 0)}
for i := 0; i < 3; i++ {
myBook.Pages = append(myBook.Pages, &Page{i + 1, "words"})
}

// Open a file and dump JSON to it!
f1, err := os.Create("/tmp/file1")
enc := json.NewEncoder(f1)
err = enc.Encode(myBook)
if err != nil {
panic(err)
}
f1.Close()

// Open the file and load the object back!
f2, err := os.Open("/tmp/file1")
dec := json.NewDecoder(f2)
var v Book
err = dec.Decode(&v)
if err != nil {
panic(err)
}
f2.Close()

// Check
fmt.Println(v.Title) // Output: <this is a title>
fmt.Println(v.Pages[1].Content) // Output: <words>

// pageNumber is not capitalized so it was not marshaled
fmt.Println(v.Pages[1].pageNumber) // Output: <0>

}

关于go - 是否可以在 Golang 中 pickle 结构的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com