tensorflow - LAmbda 层可以有可训练的参数吗?
问题描述
我的问题是关于 Lambda 层的。据我了解,当使用 lambda 层时,它不能保存权重/可训练参数。但是在这个例子中,Lambda 层仍然有可训练的参数(大约 55k)。这怎么会在这里工作?
解决方案
一个 lamdba 层只是一个包装器。它包装任何表达式,以便它可以用作图层。这种包装不会导致(可训练的)参数。例如,如果你想对你的输入进行计算(比如按一个因子缩放或减去平均值等),你将它描述为一个函数,将它包装在一个 Lambda 层中,就是这样。包装不需要额外的参数。
但是,这样的表达式也可以通过其他 keras 层传递您的输入。如果你像这样包裹整个层,那么被包裹的层本身就可以有参数,并且在它们被包裹时仍然有。
请注意,您的示例中的包装似乎是为了包含非 keras tf 代码。另一种方法是在实现其方法和/或仅使用功能模型 API时创建一个新的子类tf.keras.layers.Layer
并制作特定于 tf 的东西。call
推荐阅读
- c++ - 是否有必要使用 .str() 将 match.suffix() 存储在 regex_search 中?
- ios - 间歇性崩溃:尝试从第 0 部分中删除第 0 行,该部分在更新前仅包含 0 行
- css - 面板外的 SVG 图像被裁剪
- wordpress - WordPress 中的 Alt 属性为空
- php - 如何将 JSON 转换为 php 字符串
- jsfiddle - 如何通过console.log在jsfiddle上解析html
- python - 如何将文本小部件的内容插入到 sqlite 数据库中
- javascript - 关于使用 fetch() 和 .then() 构建反应状态的问题
- tfs - 如何检索工作项 ID?在 WorkItems 列表 API 中使用它
- python - 多个数组中的 numpy 计数频率