如何将Keras权重转换为JSON?

qhhrdooz  于 2023-02-08  发布在  其他
关注(0)|答案(1)|浏览(139)

(This问题可能涉及python keras和js。)
TensorflowJS具有Keras图层模型的model.loadWeights(),描述为:
从JSON对象加载所有层权重。
移植注解:HDF5重量文件无法直接加载到JavaScript/TypeScript中。scripts/www.example.com上的实用程序脚本提供了将其转换为与此方法兼容的JSON字符串的方法。pykeras.py offers means to convert them into JSON strings compatible with this method. Porting Note: TensorFlow.js Layers supports only loading by name currently.
@param weights将权重名称Map到权重值的JSON,作为嵌套的数字数组,或NamedTensorMap,即将权重名称Map到tf.Tensor对象的JSON。
我很难理解这意味着什么,也很难理解如何将权重转换为JSON。他们链接了一个scripts/pykeras.py文件,但不知道在哪里可以找到这个文件(它不在node_modules中)
有人帮忙吗?

gg58donl

gg58donl1#

有时你可能只找到一些模型的权重,当你用tensorflowjs_converter转换它们时,它们有modelTopology:null
不用说,如果模型拓扑设置为有意义的值,则不需要这样做。
然而,如果NN不是太复杂,那么在JS或TS中实现它并从外部源加载权重可能是值得的。
我是为VGG16设计的,但其他型号(如移动的网络)要复杂得多。
这就是当 * 您拥有模型 * 但想要 * 加载权重 * 时的求解方法。
1.获取(加载或写入)模型(必须是分层模型。)
1.然后仅装载重物

const json = JSON.parse(readFileSync("path/to/model.json"))   
model.loadWeights(json.weightsManifest, false);

相关问题