我正在创建一个自定义图层,其权重需要在激活之前与逐个元素相乘。当输出和输入的形状相同时,我可以使它工作。当我将一阶数组作为输入,将二阶数组作为输出时,就会出现问题。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) 如果我在主活动中启动服务,然后退出main并再次创建main,是否会将新服务实例放在其位置?或者它是同一个实例?还是会有两个例子?我需要知道,因为在我的服务中,每次创建新服务时我都会创建一个唯一的ID.
android android-service android-lifecycle android-background