首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问模型中的Tensorflow.js图层属性

访问模型中的Tensorflow.js图层属性
EN

Stack Overflow用户
提问于 2021-01-03 03:12:32
回答 1查看 23关注 0票数 0

我使用的是一个预先训练好的(用Python语言编写的) Keras模型,方法是使用tensorflow.js将其加载到JavaScript中,并使用tensorflow.js库。该模型有一个GaussianNoise输入层和一个GaussianDropout层,分别具有stddev和rate属性。

加载模型后,请执行以下操作:

代码语言:javascript
复制
let model;
(async function () {
    model = await tf.loadLayersModel("TensorFlowModels/dnn_fscav.json");
})();

在同一路径中,我将权重保存在一个.bin文件中。现在,我的问题是,我需要在加载模型后更改GaussianNoise层的stddev和GaussianDropout的速率,最好是直接从模型中更改。我研究了模型tensorflow对象和它的层,但我找不到这些属性。

我还知道我可以直接从JSON文件更改这些属性,但这意味着读取JSON,修改它,然后使用tensorflow读取它。这并不理想。我还查看了tensorflow.js应用程序接口参考,但没有找到关于如何做到这一点的解释。

有没有人知道一种更干净的方法来改变已加载模型中的图层属性?

EN

回答 1

Stack Overflow用户

发布于 2021-01-03 19:43:55

如果这对任何人有帮助,在仔细查看Tensorflow模型对象后,我意识到它具有环形结构。这意味着,一些对象属性调用其他对象属性,而其他对象属性同时调用以前的对象属性。我可以在以下对象属性中找到图层属性:

代码语言:javascript
复制
model.layers[layer_number].outboundNodes[0].outboundLayer.property = new_value

在我的例子中,神经网络的GaussianNoise层的属性是stddev,GaussianDropout层的属性是rate。通过将该属性更改为新值并保存模型,我可以确认层的属性已更改。我猜您还可以从对象中的任何其他圆形特征访问属性,因为它们都指向相同的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65543056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档