小编buc*_*hed的帖子

在keras自定义层中进行广播的逐元素乘法

我正在创建一个自定义图层,其权重需要在激活之前与逐个元素相乘。当输出和输入的形状相同时,我可以使它工作。当我将一阶数组作为输入,将二阶数组作为输出时,就会出现问题。tensorflow.multiply支持广播,但是当我尝试在Layer.call(x,self.kernel)中使用它来将x与self.kernel变量相乘时,它抱怨它们是不同的形状,说:

ValueError: Dimensions must be equal, but are 4 and 3 for 'my_layer_1/Mul' (op: 'Mul') with input shapes: [?,4], [4,3].
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

from keras import backend as K
from keras.engine.topology import Layer
import tensorflow as tf
from keras.models import Sequential
import numpy as np

class MyLayer(Layer):

    def __init__(self, output_dims, **kwargs):
        self.output_dims = output_dims

        super(MyLayer, self).__init__(**kwargs)

    def build(self, input_shape):
        # Create a trainable weight variable for this layer.
        self.kernel = self.add_weight(name='kernel',
                                      shape=self.output_dims,
                                      initializer='ones',
                                      trainable=True)


        super(MyLayer, self).build(input_shape)  # Be sure to call this …
Run Code Online (Sandbox Code Playgroud)

python neural-network keras tensorflow keras-layer

5
推荐指数
1
解决办法
7851
查看次数

Android服务是一个单身人士吗?

如果我在主活动中启动服务,然后退出main并再次创建main,是否会将新服务实例放在其位置?或者它是同一个实例?还是会有两个例子?我需要知道,因为在我的服务中,每次创建新服务时我都会创建一个唯一的ID.

android android-service android-lifecycle android-background

4
推荐指数
1
解决办法
541
查看次数