NSR*_*NSR 1 neural-network deep-learning keras
我试图在 keras 中有一个 lambda 层,在将其传递到另一层之前执行向量矩阵乘法。矩阵是固定的(我不想学习它)。代码如下:
model.add(Dropout(0.1))
model.add(Lambda(lambda x: x.dot(A)))
model.add(Dense(output_shape, activation='softmax'))
model.compile(<stuff here>)}
Run Code Online (Sandbox Code Playgroud)
A 是固定矩阵,我想做 x.dot(A)
当我运行这个时,我收到以下错误:
'Tensor' object has no attribute 'dot'
当我用 matmul 替换 dot 时出现同样的错误(我使用的是张量流后端)
最后,当我将 lambda 层替换为
model.add(Lambda(lambda x: x*A))
我收到以下错误:
model.add(Lambda(lambda x: x*G))
model.add(Dense(output_shape, activation='softmax'))
AttributeError: 'tuple' object has no attribute '_dims'
我是 Keras 新手,因此我们将不胜感激。谢谢
我认为您可以添加一个Dense
初始权重为矩阵的层A
,并设置参数trainable=False
和use_bias=False
。这一层相当于一个固定的矩阵乘法。
model.add(Dense(A.shape[1], trainable=False, weights=[A], use_bias=False))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2565 次 |
最近记录: |