【问题标题】:Custom layer in Keras: def callKeras 中的自定义层:def call
【发布时间】:2017-08-02 16:01:29
【问题描述】:

如何在 Keras 中实现自定义层? def 调用中的参数 'x' 是什么意思?

我需要使用 (num,4,4) 权重实现层,该权重将 (num,4,4) 数组作为输入,并将每个切片(每个 num (4,4) 输入数组)乘以相应的权重切片.所以我想要 (num,1,1) 个输出。

我尝试这样做:

def call(self, x, mask=None):
    num = self.input_len
    res=np.zeros((num,1,1))
    for i in range(num):
        print(x[i,:,:])
        res[i,0,0]=K.dot(x[i,:,:], self.W[i,:,:])
    return res

但我有错误:

    /home/universal/anaconda3/envs/practicecourse2/mylayer.py in call(self, x, mask)
     26         for i in range(num):
     27             print(x[i,:,:])
---> 28             res[i,0,0]=K.dot(x[i,:,:], self.W[i,:,:])
     29         return res
     30 

ValueError: setting an array element with a sequence.

我的代码有什么问题?

【问题讨论】:

    标签: python keras layer


    【解决方案1】:

    我应该使用

    res= K.sum(x*self.W,axis=(2,3))
    

    而不是

    for i in range(num):
        print(x[i,:,:])
        res[i,0,0]=K.dot(x[i,:,:], self.W[i,:,:])
    

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 2021-03-12
      相关资源
      最近更新 更多