在 AI/ML 项目中工作,我需要一种在 nodejs 中运行 pickle 文件的方法,这样我就可以用它来对他们提交的数据运行算法。
尝试使用 node-pickle 库将 pickle 文件转换为 JSON 对象。 这里是 node-pickle 的文档
const nodePickle = require('node-pickle');
// Convert pickled object to JSON object
nodePickle.load(pickledData)
.then(data => ({
// data is a JSON object here
})
然后您可以使用 tensorflow.js 将该 JSON 对象作为模型运行。 Tenrsorflow.js 文档
node-jpickle
。根据它的文档,它似乎能够处理大多数情况 pickle
可以,甚至一些更高级的情况,例如类:
function MyClass() {}
var jpickle = require('jpickle');
jpickle.emulated['__main__.MyClass'] = MyClass;
var unpickled = jpickle.loads(pickled);
如果你只是想 pickle/unpickle,你可以像在 Python 中那样做:
var unpickled = jpickle.loads(pickled);
文档没有说明任何关于正常
load
功能的信息。
试试这个https://github.com/ewfian/pickleparser
npm install pickleparser
import fs from 'node:fs/promises';
import path from 'node:path';
import { Parser } from 'pickleparser';
async function unpickle(fname) {
const pkl = await fs.readFile(path.join(fname), 'binary');
const buffer = Buffer.from(pkl, 'binary');
const parser = new Parser(buffer);
const obj = parser.load();
console.log(obj);
}
unpickle('index.pkl');