python - 形状未知的 Keras 自定义层权重
问题描述
我正在尝试在 keras 中创建一个自定义层,以获取 3D 张量作为输入。然而,3D 张量的第一维是可变的,例如 - [12,128,157]、[20,128,157]、[8,128,157]。自定义层将具有形状取决于此可变维度的权重 -
self.kernel1 = self.add_weight(shape=(self.output_dim,input_dim),
name = 'kernel1',
initializer=self.kernel_initializer,
regularizer=self.kernel_regularizer,
constraint=self.kernel_constraint,
trainable=True)
其中 input_dim 在这种情况下是可变形状( 12,20,8 等)。
样品模型 -
inputs=Input(shape = (None,128,157)) # tensor of shape (?,?,128,157)
x= CustomLayer(output_dim =10)(x)
这会引发错误
类型错误:+ 不支持的操作数类型:“int”和“NoneType”
是否有任何解决方法来初始化可变大小的可训练权重?
解决方案
推荐阅读
- javascript - 如何使用 DOM 生成小计
- reactjs - 为什么 PropTypes 失败且 Value 未定义
- c# - 如何在这种情况下使用 c# AutoMapper 映射对象
- python - 如何按字母顺序对“标题”列中的数据框进行排序
- javascript - 如何使用 Webpack 加载 ES 模块的开发版本
- java - Java - 使用执行器服务读取文件给出错误 409
- c# - NLog - 为什么在调用 Shutdown 后不释放锁定的文件?
- c - getchar 与 scanf:为什么 getchar 不起作用?
- c++ - 如何将复数传递给模板化数组搜索函数?
- laravel - 如何使用 Laravel 在同一个模型中编写两个表?